Golf un programma o una funzione che dà il posizione del gnu che parte da piazza su un infinito scacchiera che è numerato in una spirale piazza in senso antiorario, dove gli gnu sempre visite il numero più basso quadrato si può raggiungere che non ha ancora visitato.
Ispirazione: The Trapped Knight e OEIS A316667 .
Modifica: questa sequenza è ora sull'OEIS come A323763 .
Il codice può produrre il di posizione, le prime posizioni, o generare la sequenza prendendo alcun input.
Sentiti libero di dare la sua posizione dopo (o fino a) salti invece, ma in tal caso, indicalo chiaramente nella tua risposta e assicurati che un input di produca 1
(o [1]
se appropriato).
Questo è code-golf , quindi l'obiettivo è produrre codice funzionante nel minor numero di byte possibile nella lingua scelta.
Nota: lo gnu rimane intrappolato (molto simile al cavaliere fa il suo posizione, piazza , e il cammello fa il suo , quadrato ) al suo posizione sulla piazza . Il comportamento del codice potrebbe essere indefinito per maggiore di questo. (Grazie a Deadcode per il codice C ++ che l'ha trovato!)
Dettaglio
La scheda è simile alla seguente e continua indefinitamente:
101 100 99 98 97 96 95 94 93 92 91
102 65 64 63 62 61 60 59 58 57 90
103 66 37 36 35 34 33 32 31 56 89
104 67 38 17 16 15 14 13 30 55 88
105 68 39 18 5 4 3 12 29 54 87
106 69 40 19 6 1 2 11 28 53 86
107 70 41 20 7 8 9 10 27 52 85
108 71 42 21 22 23 24 25 26 51 84
109 72 43 44 45 46 47 48 49 50 83
110 73 74 75 76 77 78 79 80 81 82
111 112 113 114 115 116 117 118 119 120 121
Uno gnu è un pezzo degli scacchi fata "gnu" - un pezzo degli scacchi non standard che può muoversi sia come cavaliere (una -foglia) sia come cammello (una -foglia).
Come tale, potrebbe spostarsi in una di queste posizioni dalla sua posizione iniziale di :
. . . . . . . . . . .
. . . . 35 . 33 . . . .
. . . . 16 . 14 . . . .
. . 39 18 . . . 12 29 . .
. . . . . (1) . . . . .
. . 41 20 . . . 10 27 . .
. . . . 22 . 24 . . . .
. . . . 45 . 47 . . . .
. . . . . . . . . . .
Il più basso di questi è e lei non ha ancora visitato quel quadrato, quindi è il secondo termine della sequenza.
Successivamente potrebbe spostarsi da in una di queste posizioni:
. . . . . . . . . . .
. . . . . . 14 . 30 . .
. . . . . . 3 . 29 . .
. . . . 6 1 . . . 53 86
. . . . . . . (10) . . .
. . . . 22 23 . . . 51 84
. . . . . . 47 . 49 . .
. . . . . . 78 . 80 . .
. . . . . . . . . . .
Tuttavia, ha già visitato piazza quindi la sua terza posizione è piazza , la più bassa che non ha ancora visitato.
I primi termini del percorso dello gnu sono:
1, 10, 3, 6, 9, 4, 7, 2, 5, 8, 11, 14, 18, 15, 12, 16, 19, 22, 41, 17, 33, 30, 34, 13, 27, 23, 20, 24, 44, 40, 21, 39, 36, 60, 31, 53, 26, 46, 25, 28, 32, 29, 51, 47, 75, 42, 45, 71, 74, 70, 38, 35, 59, 56, 86, 50, 78, 49, 52, 80, 83, 79, 115, 73, 107, 67, 64, 68, 37, 61, 93, 55, 58, 54, 84, 48, 76, 43, 69, 103, 63, 66, 62, 94, 57, 87, 125, 82, 118, 77, 113, 72, 106, 148, 65, 97, 137, 91, 129, 85
I primi salti sono mosse da cavaliere, quindi i primi termini coincidono con A316667 .