É sabido que uma pessoa em uma grade sob a influência de álcool tem a mesma chance de seguir as direções disponíveis. No entanto, essa afirmação de bom senso não se aplica ao reino dos bêbados muito pequenos , cujo comportamento é como se eles seguissem todos os caminhos disponíveis ao mesmo tempo, e os possíveis caminhos que eles seguiam podem interferir um no outro. Sua tarefa é exibir as posições possíveis de um bêbado quântico após as n
etapas.
Especificação
O bêbado em questão ocupa uma grade quadrada e pode ser considerado um autômato celular de três estados usando uma vizinhança de Von Neumann (em forma de mais) que segue estas regras simples:
Empty
vai paraAwake
se for adjacente a exatamente umAwake
e, caso contrário, vai paraEmpty
Awake
vai paraSleeping
Sleeping
vai paraSleeping
O estado inicial do quadro é um único Awake
cercado por um campo infinito de Empty
s.
Desafio
Dado um número inteiro não negativo n
, crie uma representação ASCII do bêbado após as n
etapas. Cada estado deve ser representado por um caractere diferente, e as soluções devem indicar qual caractere significa qual estado. Se você usar espaços para Empty
, não precisará incluir uma execução deles no final de uma linha.
Isso é código-golfe , então a resposta mais curta vence. Aplicam-se brechas padrão , são permitidos espaços em branco à esquerda e à direita, saída de matriz de caracteres / matriz de caracteres 2D, etc.
Exemplos
Esses exemplos usam para
Empty
, @
para Awake
e #
para Sleeping
.
n=0
@
n = 1
@
@#@
@
n = 2
@
#
@###@
#
@
n = 3
@
@#@
@ # @
@#####@
@ # @
@#@
@
n=6
@
#
@###@
@#@
@ ### @
#@# # #@#
@###########@
#@# # #@#
@ ### @
@#@
@###@
#
@
n=10
@
#
@###@
@#@
###
# # #
#######
# ### #
@ ## ### ## @
#@# ### # ### #@#
@###################@
#@# ### # ### #@#
@ ## ### ## @
# ### #
#######
# # #
###
@#@
@###@
#
@
Nota interessante
Observando a sequência do número de células ocupadas no OEIS, descobri que o bêbado quântico é isomórfico para a sequência de palitos de dente muito mais estudada . Se você puder incorporar esse conhecimento em um golfe melhor, ficarei impressionado.
n=10
está correto? Eu tentei algumas abordagens e todas obtiveram a mesma resposta (errada), então só quero ter certeza. Parece um pouco errado, mas eu não sei.