Powszechnie wiadomo, że osoba na siatce pod wpływem alkoholu ma równe szanse pójścia we wszystkich dostępnych kierunkach. Jednak to rozsądne stwierdzenie nie dotyczy królestwa bardzo małych pijaków, których zachowanie jest tak, jakby podejmowali oni każdą dostępną ścieżkę naraz, a możliwe ścieżki, które podążają, mogą kolidować ze sobą. Twoim zadaniem jest wyświetlenie możliwych pozycji takiego kwantowego pijaka po wykonaniu n
kroków.
Specyfikacja
Wspomniany pijak zajmuje kwadratową siatkę i może być uważany za 3-stanowy automat komórkowy wykorzystujący sąsiedztwo von Neumanna (w kształcie plus), które przestrzega tych prostych zasad:
Empty
idzie do,Awake
jeśli przylega do dokładnie jednegoAwake
, a w przeciwnym razie idzie doEmpty
Awake
idzie doSleeping
Sleeping
idzie doSleeping
Początkowy stan planszy to pojedynczy Awake
otoczony nieskończonym polem Empty
s.
Wyzwanie
Biorąc pod uwagę nieujemną liczbę całkowitą n
, po n
kroku utwórz reprezentację ASCII pijaka . Każdy stan powinien być reprezentowany przez inny charakter, a rozwiązania powinny określać, który znak oznacza, który stan. Jeśli używasz spacji do Empty
, nie musisz dołączać ich na końcu linii.
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź. Obowiązują standardowe luki , dozwolone są początkowe i końcowe spacje, dozwolone są dane wyjściowe z tablicy znaków / tablicy znaków 2d itp.
Przykłady
Te przykłady używają dla
Empty
, @
dla Awake
i #
dla Sleeping
.
n=0
@
n = 1
@
@#@
@
n = 2
@
#
@###@
#
@
n = 3
@
@#@
@ # @
@#####@
@ # @
@#@
@
n=6
@
#
@###@
@#@
@ ### @
#@# # #@#
@###########@
#@# # #@#
@ ### @
@#@
@###@
#
@
n=10
@
#
@###@
@#@
###
# # #
#######
# ### #
@ ## ### ## @
#@# ### # ### #@#
@###################@
#@# ### # ### #@#
@ ## ### ## @
# ### #
#######
# # #
###
@#@
@###@
#
@
Ciekawa uwaga
Analizując sekwencję liczby zajętych komórek w OEIS, odkryłem, że pijak kwantowy jest izomorficzny w stosunku do znacznie lepiej zbadanej sekwencji wykałaczek . Jeśli potrafisz włączyć tę wiedzę do lepszego golfa, będę pod wrażeniem.
n=10
jest poprawna? Wypróbowałem kilka podejść i wszystkie otrzymały tę samą (niewłaściwą) odpowiedź, więc chcę się tylko upewnić. Trochę to wygląda, ale nie wiem.