以下の要件を満たす最短のプログラム(バイト単位で測定される長さ)を作成します。
- 入力なし
- 出力は標準出力へ
- 実行は最終的に終了します
- 出力バイトの合計数がGrahamの数を超えています
プログラムは、無制限のリソースにアクセスできる理想的なコンピューター1で「正常な」終了まで実行され、必要に応じて(構文を変更せずに)共通のプログラミング言語が変更されると仮定します。これらの仮定のため、これを一種のゲダンケン実験と呼ぶかもしれません。
物事を始めるために、急成長している階層でfω+ 1(99)を計算する73バイトのRubyプログラムを以下に示します。
f=proc{|k,n|k>0?n.times{n=f[k-1,n]}:n+=1;n};n=99;n.times{n=f[n,n]};puts n
1編集:より正確には、既存のシステムを使用して、ストレージサイズに上限がないように変更します(ただし、常に有限です)。命令の実行時間は変更されることは想定されていませんが、マシンは動作寿命に上限がないという点で理想的であると想定されています。