※この記事はTwitter上で2021/04/14から2012/05/14まで開催される「お料理巨大数」というイベントのエントリー記事です。イベントの詳細は以下を参照してください。
本日4/14から5/14までの1カ月間巨大数大会を開催します。
— きまぐれのさばのしおやき (@kimaguresabisio) 2021年4月13日
大会の名前はお料理巨大数です。
細かいルールなどは返信欄をチェックしてください
(このツイートの返信欄に数を投稿しないでください。このツイートの返信欄では大会のルールにおける質問をする場所とします
人物1:皆様、こんにちは。分クッキングのお時間です。
人物2:本日は、「ローダー風スパゲッティーサラダ~3種の配列を添えて~」のレシピをご紹介します。自然数のみを使用しますので、アレルギーのある方にもご安心です。
人物1:今回使用する食材はこちらです。
・強配列表記
強配列表記 | 巨大数研究 Wiki | Fandom
・多変数アッカーマン関数
多変数アッカーマン関数 | 巨大数研究 Wiki | Fandom
・第1配列システム
ユーザーブログ:108Hassium/配列システム | 巨大数研究 Wiki | Fandom
・ローダー関数
ローダー数 | 巨大数研究 Wiki | Fandom
人物2:おや、何やら見慣れない食材がありますね。
人物1:第1配列システムのことですね。かなりマイナーな食材なんですけども、今回は更に特別なものを使ってみたいと思います。
:1個以上の0
:0個以上の非負整数
:非負整数
(1)
(2)
(3)
人物2:第3ルールに糖衣構文が使われていますね!
人物1:はい、通常のものより甘みが強いんですよね~。さて、それでは調理に移りたいと思います。
人物2:はい!
人物1:まずは第1配列を使います。関数記号の右側にを1つ、左側の配列に
を4つ入れてください。出来ましたら、これを
としましょう。
人物1:次はを作ります。
人物2:自然対数の底と間違わないようにしましょう。
人物1:まず強配列にを2つ入れ、最後に全体に
をかけてください。これで
の出来上がりです。
人物2:再帰的ですね!
人物1:次はです。
を2つ、アッカーマン関数に入れてください。
人物1:続いて、を作っていきましょう。まず先程作った
をアッカーマン関数の定義に従って10回計算しましょう。
人物2:アッカーマン関数の定義はこちらです。
人物1:今回使うのは最後のルールだけですね。計算しましたらを10回剥いて中身を取り出し、D関数に入れてください。これで
の出来上がりです。
人物2:D関数を使っているということは、だいぶ大きそうですね。
人物1:そうですね。さぁどんどん行きましょう、次はをつくります。まずは
を
で割り、余りから
を引き、
の右上に乗せてください。
※"%"は剰余演算子
人物2:サラダっぽくなってきましたね!
人物1:次はを作ります。多変数アッカーマン関数の中に、
の配列部分に入れたのと同じものを入れてください。
人物2:他のものと無意味に絡めて可読性を下げる、これぞまさにスパゲッティー定義ですね!
人物1:さぁこれが最後の要素です。を以下のようにします。
)]
人物2:"spetial dish"ですか。取って付けたような特別感ですね!
人物1:[沈黙]
人物2:さて調理はこれで最後との事なので、次は盛り付けですね。
人物1:あっはい、作った、
、
、
、
、
と
2つを強配列にこのように盛り付けてください。
ローダー風スパゲッティーサラダ~3種の配列を添えて~
人物2:スパゲッティーですね!
人物1:はい、というわけで「ローダー風スパゲッティーサラダ~3種の配列を添えて~」の出来上がりです。それではさっそく食べてみましょう!
人物2:いただきます!
人物1:まず、と
と
からいきましょう。
人物2:、
、
でしたね。これは定義そのままで何も計算しないほうがよさそうですね。
人物1:そうですね。ちなみには大体
ぐらい、
は
ぐらいだと思います。
人物2:第1配列ってそんなに弱いんですね。
人物1:はい。舌に自信のある人はもっと詳しく味わってみるのもいいでしょう。さて、次はを味わってみましょう。
人物2:を10回計算したら
になりますから、
ですね。
人物1:はい。次はにしましょう。
人物2:ですから、
を解くことになりますね。
人物1:今回のメニューは自然数のみを使うと約束したので、でなければなりませんね。
人物2:じゃあ次はですね。まずは
を
で割った余りを・・・あれ?
より
の方が大きいんでしたよね?
人物1:はい、になるので
になります。
人物2:またですか、雲行きが怪しくなってきましたね。
人物1:さぁ最後はを味わいましょう。定義は
)]でしたね。
人物2:や
が混ざってる上に再帰的でややこしそう・・・って左端が
だから結局
じゃないですか!
人物1:そうですね。というわけで、それぞれの値を代入し直すとこのようになります。
ローダー風スパゲッティーサラダ~3種の配列を添えて~
人物2:スパゲッティーがサラダになるんですね!
人物1:そうなんです!さて、ここまで一つ一つの具材を味わっていきましたが、全体の味はいかがでしょうか?
人物2:D関数の味しかしないですね。
人物1:・・・というわけで、本日は「ローダー風スパゲッティーサラダ~3種の配列を添えて~」のレシピを紹介しました。
Q&A
Q:サラダ数って何?
A:「既存の様々な巨大数や関数を組み合わせて作ったエレガントでない巨大数をけなす言葉」です。由来は知りません。
Q:スパゲッティー定義って何?
A:冗長で必要以上に難解な定義のことです。プログラミング用語の「スパゲッティーコード」に由来します。おそらく以下のツイートが初出です。
Q:卵要素は無いの?
A:入れたら定義が成立しなくなるので諦めました。まぁ今回のイベントの「芸術部門」は破綻しててもいいっぽいんですが、どうせ破綻させるなら面白く破綻させたかったのでやめました。
Q:糖衣構文って何?
A:「プログラミング言語において、読み書きのしやすさのために導入される書き方であり、複雑でわかりにくい書き方と全く同じ意味になるものを、よりシンプルでわかりやすい書き方で書くことができるもののことである。構文上の書き換えとして定義できるものであるとも言える。」とのことです。今回のケースでは定義を記述する言語における糖衣構文を用いて定義を書き換えたという意味です。腑に落ちない方は「詰めが甘いな」とでも思っておいてください。
Q:後半の部分って何やってるの?
A:大きさを調べるための計算をしています。巨大数をサラダに例えるなら、そのサラダを「食べる」ことは「大きさを調べる行為」に対応させると良さそうだなと考えました。