Il est bien connu qu'une personne sur une grille sous l'influence de l'alcool a une chance égale d'aller dans toutes les directions disponibles. Cependant, cette affirmation de bon sens ne s’applique pas au domaine des très petits ivrognes, dont le comportement ressemble beaucoup à ceux qui empruntent tous les chemins disponibles en même temps, et les chemins possibles qu’ils empruntent peuvent se gêner. Votre tâche consiste à afficher les positions possibles d'un tel ivrogne après chaque n
étape.
spécification
L’ivrogne en question occupe une grille carrée et peut être considéré comme un automate cellulaire à trois états utilisant un voisinage de Von Neumann (en forme de plus) qui suit ces règles simples:
Empty
va àAwake
si elle est adjacente à exactement unAwake
, et sinon va àEmpty
Awake
va àSleeping
Sleeping
va àSleeping
L’état initial du plateau est un simple Awake
entouré d’un champ infini de Empty
s.
Défi
Étant donné un entier non négatif n
, créez une représentation ASCII de l'ivrogne après les n
étapes. Chaque état doit être représenté par un caractère différent et les solutions doivent indiquer quel caractère signifie quel état. Si vous utilisez des espaces pour Empty
, vous n'avez pas besoin d'en inclure une série à la fin d'une ligne.
C'est du code-golf , donc la réponse la plus courte gagne. Des failles standard s'appliquent, les espaces de début et de fin sont autorisés, la sortie de tableau de chaînes / 2d est autorisée, etc.
Exemples
Ces exemples utilisent pour
Empty
, @
pour Awake
et #
pour Sleeping
.
n=0
@
n = 1
@
@#@
@
n = 2
@
#
@###@
#
@
n = 3
@
@#@
@ # @
@#####@
@ # @
@#@
@
n=6
@
#
@###@
@#@
@ ### @
#@# # #@#
@###########@
#@# # #@#
@ ### @
@#@
@###@
#
@
n=10
@
#
@###@
@#@
###
# # #
#######
# ### #
@ ## ### ## @
#@# ### # ### #@#
@###################@
#@# ### # ### #@#
@ ## ### ## @
# ### #
#######
# # #
###
@#@
@###@
#
@
Note intéressante
En regardant la séquence du nombre de cellules occupées dans l'OEIS, j'ai découvert que l'ivrogne quantique était isomorphe à la séquence de cure - dents beaucoup mieux étudiée . Si vous pouvez intégrer cette connaissance à un meilleur golf, je serai bien impressionné.
n=10
est correct? J'ai essayé quelques approches et elles ont toutes la même (mauvaise) réponse, alors je veux juste m'assurer. Ça a l'air un peu éteint mais je ne sais pas.