皆さんの中には、BigNum Bakeoffに精通している人もいるかもしれません。目標は、多少の制約と理論的条件、たとえばプログラムを実行できるコンピューターの下で、出力が最大になるCプログラムを作成することで多少要約できます。
同じ精神で、私はすべての言語に開かれた同様の課題を提起しています。条件は次のとおりです。
最大512バイト。
最終結果はSTDOUTに出力する必要があります。これがあなたのスコアです。複数の整数が出力される場合、それらは連結されます。
出力は整数でなければなりません。(注:Infinityは整数ではありません。)
10を超える組み込み定数はありませんが、数字/桁は問題ありません(たとえば、Avogadroの定数(組み込み定数として)は無効ですが、10000は無効です)。
実行するのに十分なリソースが提供されたら、プログラムを終了する必要があります。
実行するのに十分なリソースが提供される場合、印刷出力は確定的でなければなりません。
プログラムを実行するのに十分な整数またはbigintが提供されます。たとえば、プログラムで10 1,000,000より小さい数値に基本操作を適用する必要がある場合、これを実行しているコンピューターは少なくとも10 1,000,000までの数値を処理できると想定できます。(注:最大10 2,000,000までの数値を処理するコンピューターでプログラムを実行することもできます。そのため、コンピューターが処理できる最大整数を呼び出しても、確定的な結果は得られません。)
5秒未満でプログラムの実行を完了するのに十分な計算能力が提供されます。(プログラムがコンピューターで1時間実行されていて、すぐに終了しない場合でも心配する必要はありません。)
外部リソースはないので、組み込みでない限り、そのアッカーマン関数をインポートすることを考えないでください。
すべての魔法のアイテムは一時的に寛大な神から借りています。
限界が不明で非常に大きい
- スティーブンH、ピス f 3 +B³F+ω²(256 26)
ここで、B³Fは、次の基本シーケンスを持つChurch-Kleene序数です。
B³F[n] = B³F(n), the Busy Beaver BrainF*** variant
B³F[x] = x, ω ≤ x < B³F
リーダーボード:
単に美しいアート、ルビー F ψ 0(X(Ω M + X(Ω M + 1 Ω M + 1)))+ 29(9 9 9)
スティーブン・H、Pyth F ψ(Ω Ω)+ω²+ 183(256 27! )
漏洩ヌン、Pythonの3 F ε 0(9 9 9)
fejfo、Pythonの3 F ω ω 6(F ω ω 5(9e999))
スティーブンH、Pythonの3 F ω ω +ω²(9 9 9 99)
単に美しいアート、ルビー F ω+ 35(9 9 99)
i ..、Python 2、f 3(f 3(141))
いくつかのサイドノート:
スコアを確認できない場合、リーダーボードに掲載できません。そのため、プログラムを少し説明することを期待したいかもしれません。
同様に、番号の大きさがわからない場合は、プログラムを説明してください。それを解決しようとします。
あなたが使用している場合はローダの数のプログラムの種類を、私はと呼ばれる別のカテゴリにあなたを配置します「未知の限界が非常に大規模な」 Loaderの数が上限」の急成長の階層の面で拘束非自明なを持っていないので、標準の基本シーケンス。
急成長する階層を使用して非常に大きな数を概算する方法を学びたい人のために、私はそのためだけにDiscordサーバーをホストしています。チャットルーム:Ordinalityもあります。
同様の課題:
小さな値に対して急速に成長する階層を出力するいくつかの簡単なプログラムを見たい人のために、ここにあります:
Ruby:急成長している階層
#f_0:
f=->n{n+=1}
#f_1:
f=->n{n.times{n+=1};n}
#f_2:
f=->n{n.times{n.times{n+=1}};n}
#f_3:
f=->n{n.times{n.times{n.times{n+=1}}};n}
#f_ω:
f=->n{eval("n.times{"*n+"n+=1"+"}"*n);n}
#f_(ω+1):
f=->n{n.times{eval("n.times{"*n+"n+=1"+"}"*n)};n}
#f_(ω+2):
f=->n{n.times{n.times{eval("n.times{"*n+"n+=1"+"}"*n)}};n}
#f_(ω+3):
f=->n{n.times{n.times{n.times{eval("n.times{"*n+"n+=1"+"}"*n)}}};n}
#f_(ω∙2) = f_(ω+ω):
f=->n{eval("n.times{"*n+"eval(\"n.times{\"*n+\"n+=1\"+\"}\"*n)"+"}"*n);n}
等
行くためにf_x
にf_(x+1)
、我々は一つのループを追加しますn.times{...}
。
それ以外の場合、前のすべての例に対して対角化しています
f_ω(1) = f_1(1)
f_ω(2) = f_2(2)
f_ω(3) = f_3(3)
f_(ω+ω)(1) = f_(ω+1)(1)
f_(ω+ω)(2) = f_(ω+2)(2)
f_(ω+ω)(3) = f_(ω+3)(3)
等