偽計数学妨害罪

うるせぇ、こっちは遊びで数学やってんだよ

冪乗の拡張表記が気に入らないから新しい表記を作ってみた

こんにちは、108Hassiumです。


以前こんな記事を書いたのを覚えていらっしゃるでしょうか。


hassium277.hatenablog.com



大まかに説明すると、「足し算と掛け算で成り立つ性質が冪乗では成り立たない!美しくない!」といって冪乗より美しい演算を定義しようとして、


f:id:Hassium277:20200404204839p:plain


最終的に醜い化け物が生成されて終わりました。


あの記事で語った美的感覚はほとんど冗談なんですが、今回はマジの「改良」を目指します。

前提知識

まず、今回の記事を読むのに必要なものについて解説します。


めちゃくちゃ長いので知ってる部分は読み飛ばしてください。

  • 上矢印表記
  • 巨大数の大小比較
  • チェーン表記
  • 拡張チェーン表記

上矢印表記

まず、冪乗を繰り返す演算として「テトレーション」というものがあります。


足し算から数えて4番目なので、4を表す「テトラ」(テトリスとかテトラポッドと同じ)が付きます。

  • a↑↑1=a
  • a↑↑(b+1)=a^{a↑↑b}


例えば、3↑↑4を計算すると以下のようになります。


3↑↑4=3^{3↑↑3}=3^{3^{3↑↑2}}=3^{3^{3^{3↑↑1}}}=3^{3^{3^3}}


定義だけ見てもピンとこなかったかもしれませんが、実際に計算してみるとa↑↑b=\underbrace{a^{a^{.^{.^{.^a}}}}}_bになることが分かります。


更にテトレーションを繰り返す「ペンテーション」、ペンテーションを繰り返す「ヘキセーション」と無限に続いていくのですが、定義を無限個書くわけにはいかないのでまとめて書きます。

  • a\underbrace{↑↑...↑}_c1=a
  • a↑(b+1)=a×(a↑↑b)
  • a\underbrace{↑↑...↑}_{c+1}(b+1)=a\underbrace{↑↑...↑}_c(a\underbrace{↑↑...↑}_{c+1}b)


試しに3↑↑↑↑4を計算してみます。


3↑↑↑↑4=3↑↑↑(3↑↑↑↑3)=3↑↑↑(3↑↑↑(3↑↑↑2))=3↑↑↑(3↑↑↑(3↑↑↑(3↑↑↑1)))
=3↑↑↑(3↑↑↑(3↑↑↑3))=3↑↑↑(3↑↑↑(3↑↑(3↑↑↑2)))=3↑↑↑(3↑↑↑(3↑↑(3↑↑(3↑↑↑1))))
=3↑↑↑(3↑↑↑(3↑↑(3↑↑3)))


矢印4本の演算が3本の演算の繰り返しに、3本が2本の繰り返しになっているのが分かると思います。(分からない人は自分で計算してみましょう)


因みにこの表記の呼び名は使う人によって若干違ったりするのですが、「タワー表記」は誤訳だと思っています。


大した理由はありませんが私は個人的にタワー表記派が大嫌いで、選挙で「タワー表記派は死刑」という政権公約を出す政治家がいたら投票したくなるくらい嫌いです。(「消費税引き下げ」とかには負けますが)

巨大数の大小比較

巨大数を理解するうえで、大きさの比較は不可欠な要素だと私は思っています。


しかし、科学的記法(a×10^b)のような通常の表記を用いた比較方法には限界があります。


例えば9↑↑11を科学的記法で表そうとすると、指数部分が大きすぎて正確な値を求められません。


よって巨大数には巨大数専用の尺度が必要になり、上矢印表記はそのような用途でよく用いられます。


例えば2^{2^{2^{2^2×2}×2^2×2}×2^{2^2×2}×2^2×2}×2^{2^{2^2×2}×2^2×2}×2^{2^2×2}×2^2×2という数に対して、テトレーションを基準に考えると「2↑↑5から2↑↑6の間ぐらい」と捉えることができます。





巨大数を学ぼうとする人にとって、テトレーションは非常に大きな難所になり得るようです。


テトレーションで躓く人の多くは、「宇宙に存在する原子の数」等のような実在の数を基準にして大きさを捉えようとして、「大きすぎて比較できない!理解不能!!!」という躓き方をしています。(あくまでも私の主観です)


私個人の意見としては、実在のなんやかんやとの比較はやるだけ無駄で、現実の何物よりも大きい数に対する認識は「そういうのがあるんだな」程度でいいと思います。


そもそも科学的記法も必ずしも数の大きさを想像できるわけではないので、テトレーションと大差ないのではないかと思います。


実際、1.2×10^8個と5.3×10^{10}個の何かを見せられて「1.2×10^8個はどっち?」と聞かれても私は答えられません。


この辺の話を突き詰めると「意味があるものとは何か?」という話になるのですが、私は娯楽として数学をやっているのでテトレーションより上のレベルの数を宇宙と比べるのは何も面白くないので無意味だと思っています。





話を戻します。


巨大数の比較には専用の尺度が必要ですが、万能な尺度というのは多分存在し得ません。


テトレーションで表される数は冪乗では比べられず、ペンテーションレベルの数はテトレーション基準では比較できないように、上矢印表記にも比較能力の限界があります。


要するに比較対象の数によって尺度を使い分ける必要があるわけですが、そうなると今度は尺度を選ぶために尺度そのものを比較する必要性が生じます。


関数や表記の比較にはいろいろな考え方がありますが、「計算の繰り返し回数」に着目するやり方が分かりやすいと思います。


冪乗が掛け算の繰り返し、テトレーションが冪乗の繰り返しであるように、巨大関数は同じ計算の繰り返しであるものが多いです。


なので、ある2つの関数が「同じくらいの強さ(増加の勢い)の関数を繰り返す関数」であればその2つも「同じくらいの強さ」と考えてしまいましょう。


例えば、f(n)=2^n×nとして、g(n)=f(f(...(2\underbrace{)...))}_nという関数を考えます。


ここで「f(n)2^nと同じくらいの強さである」とすると、fの繰り返しであるg2^nの繰り返しである2↑↑nと同じくらいの強さであるとみなすことができます。


また、関数が同じくらいの強さであることを表すのには"\approx"という記号がよく使われ、g(n)\approx 2↑↑nというように表記します。


変数が極端に大きかったり小さかったりするときの例外とか何をもって同じ強さとするかとかいろいろ問題はあるんですが、そこはなんか適当にやります。


私は娯楽として数学をやっているので、そこらへんは気にしません。


ちなみにFGH(Fast-Grawing Hierarchy)やハーディー階層といったツールを使うともうちょっと厳密っぽいやり方ができるんですが、ここで説明すると前提知識だけで1万字を超えるので割愛します。

チェーン表記

上矢印表記が上向きの矢印を使ったのに対し、その拡張であるチェーン表記は右向きの矢印を使って以下のように表記します。


3→3→3→3→3


注意すべき点として、チェーン表記は二項演算ではないので、例えば3→3→3→33→(3→(3→3))のことではありません。


沢山の変数が集まって一つの表記になっている(一つの整数を表している)ということです。


ただし、計算の一段階ずつで使うのは右端の2つの変数だけなので、定義を簡単にするために左側の部分は"■"で表すことにします。

  • a→b=a^b
  • ■→a→1=■→a
  • ■→1→b=■
  • ■→(a+1)→(b+1)=■→(■→a→(b+1))→b


試しに3→3→3→3→3を計算してみます。


3→3→3→3→3
=3→3→3→(3→3→3→2→3)→2
=3→3→3→(3→3→3→(3→3→3→1→3)→2)→2
=3→3→3→(3→3→3→(3→3→3)→2)→2
=3→3→3→(3→3→3→(3→(3→2→3)→2)→2)→2
=3→3→3→(3→3→3→(3→(3→(3→1→3)→2)→2)→2)→2
=3→3→3→(3→3→3→(3→(3→3→2)→2)→2)→2
=3→3→3→(3→3→3→(3→(3→(3→2→2))→2)→2)→2
=3→3→3→(3→3→3→(3→(3→(3→(3→1→2)→1))→2)→2)→2
=3→3→3→(3→3→3→(3→(3→(3→3))→2)→2)→2
=3→3→3→(3→3→3→(3→(3→27)→2)→2)→2
=3→3→3→(3→3→3→(3→7625597484987‬→2)→2)→2


上記の例ではわかりにくいと思いますが、実はa→b→c=a\underbrace{↑↑...↑}_cbになります。


変数が4個になるとこうなります。


a→b→2→2=a→b→(a→b)=a\underbrace{↑↑...↑}_{a^b}b

a→b→3→2=a→b→(a→b→(a→b))=a\underbrace{↑↑...↑}_{a\underbrace{↑↑...↑}_{a^b}b}b

a→b→4→2=a→b→(a→b→(a→b→(a→b)))=a\underbrace{↑↑...↑}_{a\underbrace{↑↑...↑}_{a\underbrace{↑↑...↑}_{a^b}b}b}b

a→b→2→3=a→b→(a→b)→2

a→b→3→3=a→b→(a→b→(a→b)→2)→2


余談ですが、「大きさ以外で意味のある数学的考察がなされた最大の数」として有名な「グラハム数」について、以下のような不等式が成り立ちます。


3→3→64→2<G<3→3→65→2≪3→3→3→3


めちゃくちゃデカい数として有名なグラハム数は、実は巨大数の世界ではクソザコです。

拡張チェーン表記

チェーン表記の拡張表記にはいくつか種類があります。

回転矢印表記

上矢印表記が上向き、チェーン表記が右向きだから次は下向きだろう、という発想で作られたのが回転矢印表記です。


発想の単純さのわりに定義がやたら複雑で、それでいて後述の他の方式とほとんど同じ強さなので存在意義はほぼ皆無です。


また、定義が書かれたページが作者により削除されたため、現在は「知る人ぞ知る伝説の表記」と化しています。


このページに概要が書いてあるので、気になる人は読んでみてください。


https://w.atwiki.jp/largenumbers/pages/25.htmlw.atwiki.jp

Hurford式

Hurford式の拡張チェーン表記は、右向き矢印の右下に数字(レベル)が付きます。


3→_23→_23→_23→_23


変数が3個以上のときは普通のチェーン表記と同じように計算し、2個のときは以下のルールで計算します。

  • a→_1b=a^b
  • a→_{c+1}b=a\underbrace{→_ca→_ca...→_ca}_b


3→_33=3→_23→_23→_23=3→_23→_2(3→_23→_22→_23)→_22
=3→_23→_2(3→_23→_2(3→_23→_21→_23)→_22)→_22
=3→_23→_2(3→_23→_2(3→_23)→_22)→_22
=3→_23→_2(3→_23→_2(3→_13→_13→_13)→_22)→_22

Aeton式

Hurford式では矢印のレベルは常に1種類だけで、以下のようにレベルの異なる矢印が混在することはありません。


3→_33→_33→_23→_13


そこで「1種類しかないなら1回書くだけでよくね?」という発想で作られたのが、Aetonの拡張チェーン表記です。


Aeton式ではチェーン表記を波括弧で囲み、レベルは波括弧の外に書きます。


\{3→3→3→3→3\}_2


あとは大体同じですが、変数が2個になって式を伸ばすときの長さがHurford式より1つ短いという違いがあります。

  • \{a→b\}_{c+1}=\{\underbrace{a→a→...a}_b\}_c


Hurford式では矢印の本数がbになるように展開しましたが、Aeton式ではab個になるように展開します。


何でそうなったかというと「作者の好み」だそうです。

配列チェーン表記

配列チェーン表記は、Hurfordの拡張チェーン表記のレベルを多変数化した表記です。(つまり正確には「拡張チェーン表記の拡張」という位置付けの表記です)


レベル付き矢印の代わりに配列を使って以下のように表記します。


3[2,1,3]3[2,1,3]3[2,1,3]3


定義は複雑なので省略します。気になる人は読んでみてください。


googology.wikia.org

本題

さて、いよいよ本題に入ります。


冪乗の拡張表記、特にチェーン表記について私はこう思っています。


効率悪くね?


例えばHurford式には「レベルの違う矢印が混在しない」「レベルの違いが活かされるのは2変数のときだけ」という性質があります。


勿体無くね?


Aeton式ではレベルを1か所だけにまとめて書くことで前者の点について改良していましたが、レベルの違いを活かして強くするという方向性も考えられます。


というわけで、新しい表記を作りました。

混合チェーン表記

  • a→_1b=a^b
  • a→_{c+1}(b+1)=a→_ca→_{c+1}b
  • ■→_c(a+1)→_1(b+1)=■→_c(■→_ca→_1(b+1))→_1b
  • ■→_d1=■
  • ■→_c1→_db=■
  • ■→_ca→_{d+1}(b+1)=■→_ca→_da→_{d+1}b


=3→_33
=3→_23→_32
=3→_23→_23→_31
=3→_23→_23
=3→_23→_13→_22
=3→_23→_13→_13→_21
=3→_23→_13→_13
=3→_23→_1(3→_23→_12→_13)→_12
=3→_23→_1(3→_23→_1(3→_23→_11→_13)→_12)→_12
=3→_23→_1(3→_23→_1(3→_23)→_12)→_12
=3→_23→_1(3→_23→_1(3→_13→_22)→_12)→_12
=3→_23→_1(3→_23→_1(3→_13→_13→_21)→_12)→_12
=3→_23→_1(3→_23→_1(3→_13→_13)→_12)→_12


変数がネストされる操作は右端のレベルが1のときしか行われず、右端のレベルが2以上であれば変数が2個でなくても長さが伸びます。


Hurford式だと見た目が同じでわかり辛いので、Aeton式と比較してみます。


n→_2n=\{n→n\}_2
n→_22→_12=\{n→2→2\}_2
n→_2n→_12=\{n→n→2\}_2
n→_22→_13=\{n→2→3\}_2
n→_2n→_1n=\{n→n→n\}_2
n→_2n→_12→_12=\{n→n→2→2\}_2
n→_2n→_1n→_12=\{n→n→n→2\}_2
n→_2n→_1n→_1n=\{n→n→n→n\}_2
n→_2n→_2n\approx \{n→n\}_3
n→_2n→_2n→_1n\approx \{n→n→n\}_3
n→_2n→_2n→_2n\approx \{n→n\}_4
n→_3n\approx \{n→n\}_n


Aeton式のレベルnをレベル3で抑え込み、完全勝利することができました。


説明は省きますが、混合チェーン表記のn→_nnは配列チェーン表記のn[\underbrace{n,n,...n}_n]nと同じくらいの強さになります。

効率化 ~チェーン表記不要説~

ところで、チェーン表記とは別系統の拡張として「配列表記」というのがあります。


配列表記をチェーン族と比べると以下のようになります。(右辺が配列表記)

  • n\underbrace{↑↑...↑}_nn=\{n,n,n\}
  • \underbrace{n→n→...→n}_n\approx \{n,n,n,n\}
  • n→_nn\approx \{n,n,n,n,n\} ※Hurford式
  • \{n→n\}_n\approx \{n,n,n,n,n\}
  • n→_nn\approx \{\underbrace{n,n,...n}_n\} ※自作
  • n[\underbrace{n,n,...n}_n]n\approx \{\underbrace{n,n,...n}_n\}


注目してほしいのが最後の式で、配列チェーン表記と配列表記が同じくらいの強さであることが分かります。


矢印表記からチェーン表記→Hurfordの拡張チェーン表記→配列チェーン表記という多段階の拡張をしたものと、矢印表記から一段階で到達した配列表記が同じ強さなんです。


f:id:Hassium277:20200414220116p:plain


巨大数の世界自体が無駄の寄せ集めみたいなものですが、無駄は無駄でもこれは面白くない無駄です。


というわけで、チェーン表記を経由せずに\{n,n,...n\}の強さを持つ表記を作りました。

拡張上矢印表記

  • a↑_1b=a^b
  • a□1=a
  • a□↑_1(b+1)=a□(a□↑_1b)
  • a□↑_{c+1}b=a□\underbrace{↑_c↑_c...↑_c}_ba

□は0本以上の上矢印


3↑_33
=3↑_2↑_2↑_23
=3↑_2↑_2↑_1↑_1↑_13
=3↑_2↑_2↑_1↑_1(3↑_2↑_2↑_1↑_1↑_12)
=3↑_2↑_2↑_1↑_1(3↑_2↑_2↑_1↑_1(3↑_2↑_2↑_1↑_1↑_11))
=3↑_2↑_2↑_1↑_1(3↑_2↑_2↑_1↑_13)


はい、ということでめちゃくちゃシンプルで強い表記ができました。


めでたしめでたし。

時系列

上記の混合チェーン~拡張上矢印表記までの流れは事実をもとに再構成したものであり、実際の時系列とは順序が異なります。


各表記の正しい誕生順序はこうです。

  • 上矢印表記
  • チェーン表記
  • Hurfordの拡張チェーン表記
  • Aetonの拡張チェーン表記
  • 拡張上矢印表記
  • 配列チェーン表記
  • 混合チェーン表記


拡張上矢印表記と混合チェーン表記の初出は、以下のブログ記事です。


googology.wikia.org


※「角括弧演算子表記」というのが拡張上矢印表記の原型で、"↑_n"の代わりに"[n]"という記号を使っています。


本来は混合チェーン表記よりも拡張上矢印表記の方が先にできたのですが、説明のしやすさなどを考慮して逆順で紹介しました。


拡張上矢印表記が先にできたとなると配列チェーン表記の存在意義がさらに薄まりますが、当時(今も?)の日本の巨大数界ではTwitterなどで積極的に自己主張しなければ面白い発見も見向きもされない環境だったため、そういった立ち振る舞いを苦手とする私の成果は注目されにくい傾向がありました。


また、自己主張が足りなかったせいか最近になってこんな記事が作成されました。


googology.wikia.org


まぁ、私の拡張上矢印表記よりもさらに古い前例があるらしいので、偉そうなことは言えませんが。