第7話 ロクリア関数
「ねえねえはかせ!!」
今日は元気いっぱいに飛び込んできた!
「すごいお賽銭箱考えたよ!!」
関数への苦手意識は少し消えたのかな。だといいけど・・・。
「問題です!7円入れると2046円拾える御利益があります!
6円入れるといくら拾えるでしょう!」
私に突然戦慄が走る。そして、すべてを了解した。が、一応ロクリアちゃんに問う。
「それは・・・すごい!じゃあ1円とか2円とか別の金額のときはどうなるの?」
「へっへー、ナイショ!」
「それじゃわからないよ・・・もう少しヒント・・・」
「じゃあね、1円の時は2円拾えるよ」
「もうちょっとヒント・・・」
「2円のときは4円拾える。少ない金額のときは、大してお金くれないの」
「3円のときは?」
「えーとね・・・ちょっと待ってね」
ノートを取り出しちらちらめくるロクリアちゃん
「6円だよ!」
「倍のお金しかもらえてないじゃん!なのに、7円入れたとき2046円も貰えるの!?」
「うん!4円入れると22円貰えて、すこし増えた感じするでしょ。もういっぱいヒント出したよ!6円のときはいくらもらえると思う?」
「わからないな・・・1000円くらい貰えちゃう感じ?」
「ぶっぶー382円でしたー!」
といってノートを見せるロクリアちゃん。
2...110
3...102
4...101
5...100
6...55
12...4,11
24...3,23
48...2,47
96...1,95
192...191
383...0
と書いてある。
「えっと、これどう読むの?」
「あのね、この前n進法でゲームやったでしょ。それでね、6からはじめたら、
6を2進法で表すと110
3進法に読み直して1を引くと、110-1=102
4進法に読み直して1を引くと、102-1=101
5進法に読み直して1を引くと、101-1=100
6進法に読み直して1を引くと、100-1=55
でしょ、あとは5ターン省略してもいいんだけど、面倒だから6ターン省略しちゃった。それで、
12進法になったとき、十の位が4、一の位が11になるから、「411」って書くとわかんなくなっちゃうから、「,」で区切ったの!見やすいでしょ!」
「すごい!たくさん計算したね!」
「それでね、お賽銭箱にある金額いれると、このゲームのターン数分のお金が帰ってきまーす!」
ロクリアちゃんは意気揚々としている。でも、突然ちょっと不安そうな顔をした。
「どうしたの?」
「ねえ、これって関数になる?」
「うん、もちろん関数だよ。どんな自然数を入れてもこのゲームは実行できる。そして、必ず0になってくれるから、ターン数も必ず一つの自然数に決まるよね」
「そうなんだけどね・・・なんか8を入れると、ほんとうに0になるのかな・・・って」
そして、ノートをめくる。そのページは・・・少し尋常ではなかった。
50331648...1,2,50331647
100663296...1,1,100663295
201326592...1,0,201326591
402653183...1,0,0
402653184...402653183,402653183
805306368...402653182,805306367
1610612736...402653181,1610612735
そして、埋め尽くすばかりの筆算、消した跡。そして、モームリ!と最後には書かれていた。
「いや、0になることはなんとなくわかるの。あと4億回くらいくりかえせば、きっと0になるよね。でもそんな大きい数って、数なのかな・・・?って」
「そうだね・・・でもよくここまで計算したね。あと4億回はちょっとむりだから、別の方法を考えよう。たとえば、十の位が1減るごとに、左の数は倍になってるよね。ってことは、402653184を、402653183回、倍にすればいいんじゃないかな?」
「どうやってそんなことするの!?」
「んー、2を5回掛けるときって、どうやって式にするか知ってる?」
「うん、2^5でしょ」
「じゃ、402653184に、402653183回、2を掛けたら?」
「あ!402653184×2^402653183だ!」
「その通り!このときどうなってるかわかる?」
「十の位が0になったから・・・
402653184×2^402653183...402653184×2^402653183-1
こうなる・・・と思う」
「そうだね、ということはだよ、左の数に右の数を足したのが答えだよね!」
「うん!
402653184×2^402653183+402653184×2^402653183-1だ!」
「そうなんだけど、ちょっと整理してあげようか。
402653184×2^402653183+402653184×2^402653183-1
=402653184×2^402653183×2-1
=402653184×2^402653184-1
ここで、ロクリアちゃんのノートによると402653184=24×2^24だから、
=(24×2^24)×2^(24×2^24)-1」
24も、3×2^3を使って少し整理するよ
=(3×2^26)×2^(3×2^26)-1
さらに指数法則でまとめよう
=3×2^(3×2^26+3×2^26)-1
さて、分配法則と指数法則で一気にまとめると、
=3×2^(3×2^27)-1
こうだ!これが0になったときの進法だから、ターン数は
3×2^(3×2^27)-2
になるね!」
「あれ?わかりやすくなったけど、なんだか迫力がなくなっちゃった」
「いやいや、そうでもないよ。3×2^(3×2^27)って、実はバカでかい数だよ。
3×2^27=402653184なんだけど、ってことは、
2×2×2×・・・って4億回以上も続けるってことだよ。だいたい1億2千万桁くらいの数だ!」
「1億2千万桁!」
「1億2千万桁ってどれくらいすごいかっていうと、1文字1Byteだと仮定すると、120MBの容量がすべて数字で埋まるような大きい数だ。一応想像できる範囲かもしれないけど、とてつもない大きい数だよね!」
「すごい!こんなお金もらえたら、この国がお金で埋まっちゃうね!」
「お賽銭箱の話に戻るよ。1を入れたら3が帰ってきた。2を入れたら4が帰ってきた・・・、まとめると、
1→2
2→4
3→6
4→22
5→62
6→382
7→2046
8→3×2^(3×2^27)-2
ってなるね!これは立派な関数だ!ロクリア関数って名前を付けよう!」
「ロクリア関数!わたし、ちょっと関数とお友達になれたかな!?」
定理4.
定理1.の初期数値をxとして、0に到達したときの世代数をf(x)とする。
このとき関数y=f(x)をロクリア関数と呼ぶ。
このロクリア関数において、
f(8)=3×2^(3×2^27)-2
注)これは弱いグッドスタイン数列の項数に一致する。初項を数えない、もしくは第0項とする流儀では、
f(8)=3×2^(3×2^27)-3
となるが、今後の拡張に備えて、今回のように定義した。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます