アランチューリングの誕生日を祝って、Google は機械を示すDoodleを公開しました。Doodleはどのようなマシンですか?チューリング完全言語を表現できますか?
古典的なチューリングマシンには明らかな違いがあります:有限のテープ、状態を接続する方法の制約、...
(右上のディスプレイは予想される出力を示しています。)
真ん中のテープは、ブランク、ゼロ、または1を保持できる正方形に分割されています。ヘッドは正方形の1つの上に配置され、読み取りと書き込みに使用されます。
テープの下に緑色の矢印が表示され、クリックしてマシンを起動できます。その隣に2本の円の線があり、そのうちのいくつかは接続されています。それらを「状態」と呼びます。
マシンが起動すると、緑色のボタンの右側にある最初の状態が点灯し、次に右側に次の状態が続きます。各状態には、次のいずれかのコマンドが含まれています。
- 空白=何もしない(次の状態に移動するだけ)
- 1 =ヘッドの現在位置でテープに1を書き込む
- 0 =ヘッドの現在位置でテープにゼロを書き込む
- 左矢印=頭を左に1ステップ移動
- 右向き矢印=頭を1つ右に移動
- 条件:頭の下の値が四角に示されている値と等しい場合、2行目の状態に進みます。そうでない場合は、右の次の状態に移動します
- 左ジャンプ:(固定された)前の状態に戻りますが、上の行のみ[元々その状態を忘れていました。@ Marzioに感謝します!]
2つのジャンプを「重ね合わせる」方法はありません。マシンが状態を去ると停止し、その右側に次の状態はありません。
(マシンが停止した後、テープの内容はディスプレイの内容と比較されますが、それがマシンの意図された機能の一部であるとは考えていません。)