■■C++で大きな数を作るスレ■■
■ このスレッドは過去ログ倉庫に格納されています
0400デフォルトの名無しさん
2010/07/04(日) 23:59:521レスに記述できるプログラムは1E100ビットで保存出来る。
チューリングマシン語1ステートで(少なくとも)1ビットの情報を
テープに書くことが出来るので、
チューリングマシンのテープに任意の1レスプログラムを書く為に
1E100ステートあれば十分。
C++をステップ実行出来るプログラムは世の中にあり、
チューリングマシン語も(当然ながら)チューリング完全であって
世の中のコンピューター言語と本質的に同じことが出来るので、
C++のプログラムをステップ実行して終了までのステップ数を数えるような
チューリングマシンのプログラムを書くことが可能。
コンピューター言語とチューリングマシン語の記述効率がどの程度差があるかはわからないが、
それほど大きな差はないはずで、
少なくとも1E100ステートあれば十分記述は可能である。
以上より、1レスプログラムのステップ数を数えて、そのステップ数を
HALT時のテープ上の1で返すようなプログラムを
チューリングマシン語2E100ステートで記述することが可能である。
(終了しないプログラムに対してはどんな動作でも構わない)
1レスで書ける、停止するプログラムの中で最大ステップ数の物に対しても
2E100ステートでステップ数を返せることになるので、
BB(n) の定義よりこのステップ数はBB(2E100)以下であることが分かる。
(当然BB(BB(10000))以下)
■ このスレッドは過去ログ倉庫に格納されています