Jouez à un programme ou à une fonction qui donne l' emplacement du gnou qui commence à la case sur un échiquier infini numéroté dans une spirale carrée dans le sens inverse des aiguilles d'une montre, où le gnou visite toujours la case la moins numérotée elle peut arriver qu'elle n'a pas encore visité. 1
Inspiration: Le chevalier pris au piège et OEIS A316667 .
Edit: Cette séquence est maintenant sur l'OEIS en tant que A323763 .
Le code peut produire l' emplacement , les premiers emplacements, ou générer la séquence sans aucune entrée.
N'hésitez pas à lui donner sa position après (ou jusqu'à) sauts, mais si c'est le cas, veuillez l'indiquer clairement dans votre réponse et assurez-vous qu'une entrée de donne (ou le cas échéant).1
[1]
Il s'agit de code-golf , donc l'objectif est de produire du code de travail dans le moins d'octets possible dans la langue de votre choix.
Remarque: le gnou devient piégé (un peu comme le chevalier le fait à son emplacement en , carré , et le chameau le fait à son , carré ) chez elle emplacement sur le carré . Le comportement de votre code peut être indéfini pour plus grand que cela. (Merci à Deadcode pour le code C ++ qui l'a trouvé!)
Détail
Le tableau ressemble à ce qui suit et continue indéfiniment:
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
Un gnou est une pièce d'échecs féerique "gnu" - une pièce d'échecs non standard qui peut se déplacer à la fois en tant que chevalier (un -leaper) et en tant que chameau (un -leaper).
En tant que telle, elle pourrait se déplacer vers l'un de ces emplacements à partir de son emplacement de départ :( 1 , 3 ) 1
. . . . . . . . . . .
. . . . 35 . 33 . . . .
. . . . 16 . 14 . . . .
. . 39 18 . . . 12 29 . .
. . . . . (1) . . . . .
. . 41 20 . . . 10 27 . .
. . . . 22 . 24 . . . .
. . . . 45 . 47 . . . .
. . . . . . . . . . .
Le plus bas d'entre eux est et elle n'a pas encore visité ce carré, donc est le deuxième terme de la séquence.
Elle pouvait ensuite passer de à n'importe lequel de ces endroits:
. . . . . . . . . . .
. . . . . . 14 . 30 . .
. . . . . . 3 . 29 . .
. . . . 6 1 . . . 53 86
. . . . . . . (10) . . .
. . . . 22 23 . . . 51 84
. . . . . . 47 . 49 . .
. . . . . . 78 . 80 . .
. . . . . . . . . . .
Cependant, elle a déjà visité la case , son troisième emplacement est donc la case , la plus basse qu'elle n'a pas encore visitée.
Les premiers termes du chemin du gnou sont:
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
Les premiers sauts sont des mouvements de chevalier, donc les premiers termes coïncident avec A316667 .