偽計数学妨害罪

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

₉P₃分クッキング:ローダー風スパゲッティーサラダ~3種の配列を添えて~

※この記事はTwitter上で2021/04/14から2012/05/14まで開催される「お料理巨大数」というイベントのエントリー記事です。イベントの詳細は以下を参照してください。




人物1:皆様、こんにちは。 _9\text{P}_3分クッキングのお時間です。

人物2:本日は、「ローダー風スパゲッティーサラダ~3種の配列を添えて~」のレシピをご紹介します。自然数のみを使用しますので、アレルギーのある方にもご安心です。

人物1:今回使用する食材はこちらです。

・強配列表記
強配列表記 | 巨大数研究 Wiki | Fandom


・多変数アッカーマン関数
多変数アッカーマン関数 | 巨大数研究 Wiki | Fandom


・第1配列システム
ユーザーブログ:108Hassium/配列システム | 巨大数研究 Wiki | Fandom


・ローダー関数
ローダー数 | 巨大数研究 Wiki | Fandom

人物2:おや、何やら見慣れない食材がありますね。

人物1:第1配列システムのことですね。かなりマイナーな食材なんですけども、今回は更に特別なものを使ってみたいと思います。

  • Z:1個以上の0
  • \#:0個以上の非負整数
  • k,m,n:非負整数

(1)nL_1[\#,m]=(n+m)L_1[\#,0]

(2)nL_1[Z]=n

(3)nL_1[\#,m+1,\underbrace{0,0,...0}_k,0]=nL_1[\#,m,\underbrace{n-1,n-1,...n-1}_k,n]

人物2:第3ルールに糖衣構文が使われていますね!

人物1:はい、通常のものより甘みが強いんですよね~。さて、それでは調理に移りたいと思います。

人物2:はい!

人物1:まずは第1配列を使います。関数記号の右側に11を1つ、左側の配列に1を4つ入れてください。出来ましたら、これをaとしましょう。

a=11L_1[1,1,1,1]

人物1:次はeを作ります。

人物2自然対数の底と間違わないようにしましょう。

人物1:まず強配列にeを2つ入れ、最後に全体にeをかけてください。これでeの出来上がりです。

s(e,e)×e=e

人物2再帰的ですね!

人物1:次はgです。11を2つ、アッカーマン関数に入れてください。

g=A(11,11)

人物1:続いて、hを作っていきましょう。まず先程作ったgアッカーマン関数の定義に従って10回計算しましょう。

人物2アッカーマン関数の定義はこちらです。

  • A(0,b)=b+1
  • A(a+1,0)=A(a,1)
  • A(a+1,b+1)=A(a,A(a+1,b))

人物1:今回使うのは最後のルールだけですね。計算しましたらA(10, )を10回剥いて中身を取り出し、D関数に入れてください。これでhの出来上がりです。

  • g=A(10,A(10,A(10,A(10,A(10,A(10,A(10,A(10,A(10,A(10,h'))))))))))
  • h=D(h')

人物2:D関数を使っているということは、だいぶ大きそうですね。

人物1:そうですね。さぁどんどん行きましょう、次はiをつくります。まずはagで割り、余りからaを引き、hの右上に乗せてください。

i=h^{(a\%g)-a}

※"%"は剰余演算子

人物2:サラダっぽくなってきましたね!

人物1:次はpを作ります。多変数アッカーマン関数の中に、aの配列部分に入れたのと同じものを入れてください。

p=A(1,1,1,1)

人物2:他のものと無意味に絡めて可読性を下げる、これぞまさにスパゲッティー定義ですね!

人物1:さぁこれが最後の要素です。tを以下のようにします。

t=s(1,p,e,t,i,a,1L[D(i),s(h,1,1))]

人物2:"spetial dish"ですか。取って付けたような特別感ですね!

人物1:[沈黙]

人物2:さて調理はこれで最後との事なので、次は盛り付けですね。

人物1:あっはい、作ったaeghipt2つを強配列にこのように盛り付けてください。

ローダー風スパゲッティーサラダ~3種の配列を添えて~
=s(p,a,g,h,e,t,t,i)

人物2:スパゲッティーですね!

人物1:はい、というわけで「ローダー風スパゲッティーサラダ~3種の配列を添えて~」の出来上がりです。それではさっそく食べてみましょう!

人物2:いただきます!

人物1:まず、agpからいきましょう。

人物2a=11L_1[1,1,1,1]g=A(11,11)p=A(1,1,1,1)でしたね。これは定義そのままで何も計算しないほうがよさそうですね。

人物1:そうですね。ちなみにaは大体2↑↑↑4ぐらい、g2→14→9ぐらいだと思います。

人物2:第1配列ってそんなに弱いんですね。

人物1:はい。舌に自信のある人はもっと詳しく味わってみるのもいいでしょう。さて、次はhを味わってみましょう。

人物2gを10回計算したらA(10,A(10,A(10,A(10,A(10,A(10,A(10,A(10,A(10,A(10,A(11,1)))))))))))になりますから、h=D(A(11,1))ですね。

人物1:はい。次はeにしましょう。

人物2s(e,e)=e^eですから、e^{e+1}=eを解くことになりますね。

人物1:今回のメニューは自然数のみを使うと約束したので、e=1でなければなりませんね。

人物2:じゃあ次はiですね。まずはagで割った余りを・・・あれ?aよりgの方が大きいんでしたよね?

人物1:はい、a\%g=aになるのでh=e^{(a\%g)-a}=e^0=1になります。

人物2:また1ですか、雲行きが怪しくなってきましたね。

人物1:さぁ最後はtを味わいましょう。定義はt=s(1,p,e,t,i,a,1L[D(i),s(h,1,1))]でしたね。

人物2LDが混ざってる上に再帰的でややこしそう・・・って左端が1だから結局1じゃないですか!

人物1:そうですね。というわけで、それぞれの値を代入し直すとこのようになります。

ローダー風スパゲッティーサラダ~3種の配列を添えて~
=s(p,a,g,h,e,t,t,i)
s(A(1,1,1,1),11L_1[1,1,1,1],A(11,11),D(A(11,1)),1,1,1,1)

人物2:スパゲッティーがサラダになるんですね!

人物1:そうなんです!さて、ここまで一つ一つの具材を味わっていきましたが、全体の味はいかがでしょうか?

人物2:D関数の味しかしないですね。

人物1:・・・というわけで、本日は「ローダー風スパゲッティーサラダ~3種の配列を添えて~」のレシピを紹介しました。

Q&A

Q:サラダ数って何?

A:「既存の様々な巨大数や関数を組み合わせて作ったエレガントでない巨大数をけなす言葉」です。由来は知りません。

googology.wikia.org

Q:スパゲッティー定義って何?

A:冗長で必要以上に難解な定義のことです。プログラミング用語の「スパゲッティーコード」に由来します。おそらく以下のツイートが初出です。

f:id:Hassium277:20210430165832p:plain

Q:卵要素は無いの?

A:入れたら定義が成立しなくなるので諦めました。まぁ今回のイベントの「芸術部門」は破綻しててもいいっぽいんですが、どうせ破綻させるなら面白く破綻させたかったのでやめました。

Q:糖衣構文って何?

A:「プログラミング言語において、読み書きのしやすさのために導入される書き方であり、複雑でわかりにくい書き方と全く同じ意味になるものを、よりシンプルでわかりやすい書き方で書くことができるもののことである。構文上の書き換えとして定義できるものであるとも言える。」とのことです。今回のケースでは定義を記述する言語における糖衣構文を用いて定義を書き換えたという意味です。腑に落ちない方は「詰めが甘いな」とでも思っておいてください。

ja.wikipedia.org

Q:後半の部分って何やってるの?

A:大きさを調べるための計算をしています。巨大数をサラダに例えるなら、そのサラダを「食べる」ことは「大きさを調べる行為」に対応させると良さそうだなと考えました。

参考

www.youtube.com

参考にしようと思ってYoutubeで「3分クッキング」で検索して一番上に出てきた動画です。片方の人のセリフが「はい」ばっかりで全然参考になりませんでした。