クヌースの矢印表記

提供: testwiki
ナビゲーションに移動 検索に移動

テンプレート:Expand English クヌースの矢印表記(クヌースのやじるしひょうき、テンプレート:Lang-en-short)とは、1976年ドナルド・クヌース巨大数を表現するために発明した表記法である[1][2]。これは、乗算加算の反復であり、冪乗が乗算の反復であるのと同様の考え方に基づくもので、冪乗の反復(テトレーション)を表す演算の表記法である。例えば宇宙論で使われた最大の数は、クヌースの矢印表記で表すとおよそ105[注釈 1]である。このように、クヌースの矢印表記は現実世界の事物で例えるにはあまりにも大きすぎるような巨大数を簡単に表現できる表記法の一つである。

クヌースの矢印表記を指す用語として、日本ではタワー表記という呼称も用いられる[3][4]。一方英語では、テトレーションを指数で表記した時の、まるで塔のように高く積みあがる様子を指した「Power tower[5]」という語はあるが、タワー表記に相当する用語は見受けられない。

クヌースの矢印表記のさらに拡張となる表記法には、コンウェイのチェーン表記などがある。

導入

加算→乗算→冪乗

乗算は、加算の反復によって定義できる。

a×b=a+a++ab copies of a

冪乗は、乗算の反復によって定義できる。

ab=a×a××ab copies of a

なお、一部の初期のコンピュータでは、上向き矢印を冪乗演算子に使った[6]ので、それを使うと

ab=a×a××ab copies of a=ab

例として、グーゴルプレックス 1010100 は、10↑10↑100 と書ける。

テトレーション

ここでクヌースは、二重矢印をテトレーション(指数計算の反復)を表す演算子として定義した[2]

ab=aaab copies of a=aa...ab copies of a

これを用いると、

22=22=423=222=24=1624=2222=224=216=6553625=22222=2216=2655362.003×1019728
32=33=27
33=333=327=7625597484987
34=3333=3327=376255974849871.258×103638334640024
103=101010=1010000000000 (10の100億乗)
104=10101010=101010000000000

などと書ける。

それ以上

さらにクヌースは、三重以上の矢印演算子を定義した。三重矢印は二重矢印による演算を反復する演算子であり、ペンテーションを表す。

ab=aaab copies of a

同様に、四重矢印演算子も定義できる。これはヘキセーションを表す。

ab=aaab copies of a

これを一般的に述べると、テンプレート:Mvar 重の矢印演算子は、テンプレート:Math 重の矢印演算子の反復として表すことができる[2]

an pieces of the arrowb=a(n1) pieces of the arrowa(n1) pieces of the arrowa(n1) pieces of the arrowab copies of a

具体例を挙げると、14↑↑↑↑4 は 14↑↑↑14↑↑↑14↑↑↑14 である。

なお、矢印を使った指数の記法 ab=ab も、クヌースの矢印記号の特殊例(一重矢印)として再解釈される。

定義

テンプレート:Mvar 重の矢印演算子を n と略記することにする。このとき、クヌースの矢印表記は、次のように定義される。

anb={1,if b=0ab,if n=1an1(an(b1)),otherwise a,b,n

ただし、テンプレート:Mathである。なおテンプレート:Mathなので、最初の2式の優先順位はどちらでもよい。

結合規則

クヌースの矢印(通常の指数計算である テンプレート:Math も含む)は右結合である。つまり、abc と書かれたときこれは a(bc) を表し、(ab)c ではない。

具体例を挙げると、

323

3(23)=38=38=6561

だが、

(32)3=93=93=3(2×3)=36=36=729

ではない。

他の記法との関係

既に述べた通り、1重のクヌースの矢印は冪乗を表す。また、2重のクヌースの矢印はテトレーションを表す。

ab=ab
ab=ba

また、n を用いてアッカーマン関数の一般解を表すことができる。

Ack(n,b)={2n2(b+3)}3if n3

ハイパー演算子は、積・和・後者関数も表せる以外は、n を使ったクヌースの記法と等価である。

hyper(a,n,b)=an2bif n3

コンウェイのチェーン表記は、3連では n を使ったクヌースの矢印表記と等価だが、さらに長く続けることで、クヌースの矢印表記では簡潔に表せない、あるいは現実的に表せない大きな数、たとえばグラハム数の範囲などを表すことができる。

abn=anb

配列表記も3変数ではクヌースの矢印表記と等価だが、この配列表記をさらに長く続けた場合は、コンウェイのチェーン表記よりもはるかに効率的に数が爆発する。具体的には、4変数の配列表記でコンウェイのチェーン表記レベル、5変数でその拡張表記レベルとなり、6変数以上となるとそのレベルを超える。

{a,b,n}=anb

また、多角形表記も巨大数のレベルとしてはクヌースの矢印表記レベルの巨大数を作ることができ、ハイパーE表記も拡張表記でない段階ではクヌースの矢印表記と同程度の増加速度である。

フォントの都合による代替表記

コンピュータ上でのテキストとして表記する場合、フォントによっては↑のような記号が無い場合もあるため、a^^bのようにサーカムフレックスを並べる表記を行う場合がある。クヌース自身も、これを代替的あるいは簡便な記法として認めている。

指数表記 ab のかわりに a^b と書くのも、これと同じである。

脚注

テンプレート:脚注ヘルプ

注釈

テンプレート:Notelist

出典

テンプレート:Reflist

関連項目

テンプレート:巨大数


引用エラー: 「注釈」という名前のグループの <ref> タグがありますが、対応する <references group="注釈"/> タグが見つかりません