アルコールの影響下にあるグリッド上の人が、利用可能な方向に進む可能性があることはよく知られています。ただし、この常識的な声明は非常に小さな酔っぱらいの領域には当てはまらず、その行動はまるで利用可能なすべてのパスを一度に取るかのようであり、可能なパスが互いに干渉する可能性があります。あなたの仕事は、n
ステップの後にそのような量子酔っぱらいの可能な位置を表示することです。
仕様
問題の酔っぱらいは正方形のグリッドを占有し、これらの単純な規則に従うフォンノイマン(プラス型)近傍を使用する3状態セルオートマトンと見なすことができます。
Empty
行くAwake
、それは正確に一つに隣接している場合はAwake
、それ以外に行きますEmpty
Awake
に行くSleeping
Sleeping
に行くSleeping
ボードの初期状態は、sのAwake
無限フィールドに囲まれた単一の状態ですEmpty
。
チャレンジ
非負の整数n
を指定すると、n
ステップの後に酔っぱらいのASCII表現を作成します。各状態は異なる文字で表される必要があり、ソリューションはどの文字がどの状態を意味するかを示す必要があります。にスペースを使用する場合Empty
、行末にそれらの実行を含める必要はありません。
これはcode-golfなので、最短の回答が勝ちます。標準の抜け穴が適用され、先頭および末尾の空白が許可され、文字列配列/ 2d文字配列出力が許可されます。
例
これらの例では、for
Empty
、@
for Awake
、および#
for を使用していSleeping
ます。
n=0
@
n = 1
@
@#@
@
n = 2
@
#
@###@
#
@
n = 3
@
@#@
@ # @
@#####@
@ # @
@#@
@
n=6
@
#
@###@
@#@
@ ### @
#@# # #@#
@###########@
#@# # #@#
@ ### @
@#@
@###@
#
@
n=10
@
#
@###@
@#@
###
# # #
#######
# ### #
@ ## ### ## @
#@# ### # ### #@#
@###################@
#@# ### # ### #@#
@ ## ### ## @
# ### #
#######
# # #
###
@#@
@###@
#
@
興味深いメモ
OEISで占有されているセルの数のシーケンスを調べると、量子酔っぱらいは、よりよく研究された爪tooth枝のシーケンスと同型であることがわかりました。その知識をより良いゴルフに取り入れることができれば、私は適切に感銘を受けるでしょう。
n=10
が正しいことを確認するために確認できますか?私はいくつかのアプローチを試みましたが、それらはすべて同じ(間違った)答えを得るので、私は念のためだけにしたいと思います。少し外れそうに見えますが、わかりません。