第36話 線形オメガ航空334便(中編)

下には珍しい色の建物や矢印が並んでいる。といっても、それらばかりでもう珍しくもなくなってきたが。


そんな矢先、目に飛び込んできたのは巨大な牛の牧場だ。


『あればビゴル(biggol)に作られた牧場です。といっても、今となっては廃棄されたようなものですが』

彼女が説明する。確かに草が生い茂って、あまり手入れはされていないように見える。

「なぜ廃棄されたのですか?」

『昔はこのあたりで牛肉産業が盛んだったのですが、効率性を求めて今は野菜の屋内栽培が主流になってしまいました』

「それで、放し飼いになっているのですね」

『そういうことです』

「ところで、今僕たちはどれくらいの大きさにいるのですか」

『それが、ビゴルです。ビゴルは、BEAFで{10,10,100,2}と表される数です』

「ビーフ?」

ビーフとは何だろう。あの放し飼いの牛とはなにか関係があるのだろうか。

『BEAFは、矢印表記の拡張としてジョナサン・バワーズにより考案された表記です。波括弧の中に、2個以上の自然数を並べて表記されます』

彼女がノートに書く。いつものことなのに、なんだか久しぶりな気がする。

(著者注: 前話が執筆されたのは6か月前である)


{b, p, a_1, ..., a_n}


『慣習的に、左の2つはそれぞれ基数ベース、プライムと呼ばれています』

「3つ目以降に名称はあるのですか?」

基数ベースとプライム以外を指す総称はありませんが、残りの一部を指す用語はあります』

「それは、どう使うのですか?」

『計算方法と一緒に説明しますね』


プライムルール: {b,1,...} = b


『2つ目の数が1のときは、1つ目の数がそのまま出てきます。2変数の{b,1}もbになります』

『これ以外のときは、まずパイロットと副操縦士コパイロットを探します。プライムの次の最初の1ではない要素がパイロットで、その1つ前が副操縦士コパイロットです』

「具体例をお願いします」

『点を打った数がパイロットで、その左にある数が副操縦士コパイロットです』

{10,10,4}

{10,10,5,6}

{10,10,1,2,2}

{3,1,4,1,5,9,2}

{10,5}

{10,7,1,1,1}

『最後の2つの例では、パイロットが存在しないことに気を付けてください』

「わかりました」

『では計算方法を続けますね』


初期イニシャルルール: もしパイロットが存在しなければ

{b,p,...} = b^p


『パイロットが存在しないとき、つまりpの右が全部1かあるいは2変数でpの右に何もないときは、b^pになります』

「これで、p=1とするとプライムルールですね」

『いいえ。プライムルールは3つ目以降の変数は何でもいいですが、初期イニシャルルールではもし3つ目以降の変数があったら、それらは全て1になります』

「プライムルールは2変数目が1かどうかだけで判断しているのですね」

『そうです。では、最も複雑な3つ目のルールにいきましょう』


破滅カタストロフィックルール: もし上2つのルールが適用できないなら

1. パイロットの値を1減らす

2. 副操縦士コパイロットの値を元の配列のプライムを1減らしたものに置き換える

3. 副操縦士コパイロットより前の数を全てbにする

4. 配列のそれ以外の要素は変化しない


(著者注: 出典は巨大数研究Wikiである。あと某デーモンスレイヤーとは関係ない)


『ルールが分かりにくいので、具体例を見てみましょう』


{10,1} = 10

{3,1,4,1,5,9,2} = 3

{1,1,4,5,1,4} = 1


『これら3つはプライムルールからわかります』

「はい」


{10,3} = 10^3

{33,4,1,1,1,1} = 33^4


『これらは初期イニシャルルールからわかります』

「意外と単純なのですね」

『この2つのルールは単純ですが、破滅カタストロフィックルールが複雑です。いくつか具体例を書きます』


{3,3,4} = {3,{3,2,4},3}

{10,10,1,2} = {10,10,{10,9,1,2},2}

{3,5,7,1,1,8,3} = {3,3,3,3,{3,4,7,1,1,8,3},7,3}


『最後の例のように、副操縦士コパイロットより前の数は全て最初の数に置き換わってしまいます』

「2つ目の場合は置き換わらないのですか」

『最初の10,10が10,10に置き換わっていますが、同じものなので置き換わっていないように見えるだけです』

「わかりました」


これはどれほどの大きさになるのだろう。複雑な構造は使っていないようだが、チェーン表記より大きいのだろうか。

僕の考えを読むかのように、彼女が続けた。


『3変数のBEAFは、矢印表記と同じになります』


{a,b,c} = a↑^c b


『4変数以降のBEAFは、急増加関数で次のように近似されます』


{a,b,1,2} ≒ f_(ω+1)(b)

{a,b,2,2} ≒ f_(ω+2)(b)

{a,b,c,2} ≒ f_(ω+c)(b) ≒ f_(ω2)(c)

{a,b,1,3} ≒ f_(ω2+1)(b)

{a,b,c,3} ≒ f_(ω2+c)(b) ≒ f_(ω3)(c)

{a,b,c,4} ≒ f_(ω3+c)(b)

{a,b,c,d} ≒ f_(ω(d-1)+c)(b) ≒ f_(ω^2)(d-1)

{a,b,1,1,2} ≒ f_(ω^2+1)(b)

{a,b,c,1,2} ≒ f_(ω^2+c)(b)

{a,b,c,d,2} ≒ f_(ω^2+ω(d-1)+c)(b)

{a,b,c,d,e} ≒ f_(ω^2(e-1)+ω(d-1)+c)(b) ≒ f_(ω^3)(e-1)

{a,b,1,1,1,2} ≒ f_(ω^3+1)(b)

{a,b,c,d,e,f} ≒ f_(ω^3(f-1)+ω^2(e-1)+ω(d-1)+c)(b) ≒ f_(ω^4)(f-1)

{a,b,1,1,1,1,2} ≒ f_(ω^4+1)(b)

{a,b,1,1,1,1,1,2} ≒ f_(ω^5+1)(b)


『このようにして、多変数のBEAFはω^ωに対応します。左が全部1になって、右の数が1つ増えると、順序数に+1が付くのが特徴です』

「それはなぜですか?」

『例えば、{a,b,1,1,2}で考えましょう』


{a,b,1,1,2}

= {a,a,a,{a,b-1,1,1,2},1}

= {a,a,a,{a,a,a,{a,b-2,1,1,2},1},1}

= ...

= {a,a,a,{a,a,a,{...{a,a,a,{a,1,1,1,2},1}...},1},1}

= {a,a,a,{a,a,a,{...{a,a,a,a}...}}}


『最後の2行は、b段のネストです。最後の行では、右端の1があってもなくても同じであることを使っています』

「{a,a,a,a}がb段ネストされるのですね」

『はい。{a,a,a,a}自体がω^2に対応するので、それをネストさせるとω^2+1になります』

「それで、今いるところはどこでしたっけ」

『さっき見た牧場は、{10,10,100,2}です。急増加関数では、f_(ω+100)(10)と近似できます』

「一気にω+100まで増えたのですね」

『はい。ですが、この先はもっと大きくなりますよ』

今の僕には、何が起こるかなんとなくわかるような気がする。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る