第9話 巨大数構築
俺様は自動販売機。客が入れたコインを判別し、計算したあと指定の商品を出すのが仕事だ。しかし、たまにはエラーを出さなきゃいけないこともある。みんなが聡明でありさえしてくれれば単純な仕事なのによ。
寂れた商店街の中にその自動販売機はあった。長年その前の店で商売している爺は、店が移り変わり、そしてシャッターが増えていくその過程を、何年も何十年も見続けていた。ただ、唯一かわらないこの自動販売機をルーチンと名付け、生涯の友としていたのだ。
「おまえは見ることも話すこともできないが、お金を入れることによって反応を返してくれる。それだけは変わらない友なのじゃ…」
なんか爺が言っているが、俺様には関係ないね。
まず、Ⅰ部分にある0の数をn、II部分にある指数をm、III部分のみを見たときの自然数をxとしよう。たとえば、
(0,0,0,0,(0,1),1,0,(1))=6246383
なら、
n=4
m=(0,1)=3
x=(1,0,(1))=50
だ。そこで、
c(4,3,50)=6246383
となるような関数
c(n,m,x) を次のように定義する
sp(x,n+1)×(p(n+1))^m
spは素因数ずらしだ。積の左辺がIII部分、右辺がII部分になっている。
また、自然数xの素数指数表現のn番目の項を取り去る関数
del(x,n) を次のように定義する。
x÷(p(n)^pf(x,n))
たとえば、(((1)),0,(1),1)=2700から(((1)),0,0,1)=112にするのは、
del(2800,3)=112 とする。
そこで、xのI部分の0を数える関数を次のように定義する。
I(x)=mip(x)-1
xのII部分を取り出す関数を次のように定義する。
II(x)=(minp(x))^pf(x,mip(x))
さらに、ある自然数xからIII部分を取り出す関数
III(x) を次のように定義する。
sp( del(x,mip(x)) , -(mip(x)+1))
これは、II部分を削除したあと、素因数ずらしをして、左に寄せたものだ。
さて、具体的に巨大数をつくるための手続きを記述しよう。
手順は、
III部分を降下させる
IIIが後続順序数であったら、Iに0を付け加える
というものだ。
t(x)を一つの手順とする。
まず、xのIII部分が後続順序数である とは、
III(x)∈奇数
ということだ。
t(x) を次のように定義する。
III(x)∈奇数 ならば、
c(I(x)+x,II(x),sp(III(x),-1))
III(x)∈偶数 のときは……
俺様の能力ではこれはすこしきついな。。なにせ、俺様は自動販売機だ。10円と100円の違いはわかっても、1ドルと100円の違いはわからん。((1))と(1,1)の順序数としての大きさ比べはできん。ああ、悲しきかな自動販売機の限界よ。
大きな素数をもとめて えのき @enoki_fugue
★で称える
この小説が面白かったら★をつけてください。おすすめレビューも書けます。
フォローしてこの作品の続きを読もう
ユーザー登録すれば作品や作者をフォローして、更新や新作情報を受け取れます。大きな素数をもとめての最新話を見逃さないよう今すぐカクヨムにユーザー登録しましょう。
新規ユーザー登録(無料)簡単に登録できます
この小説のタグ
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます