"Blum Blum Shub" 擬似乱数生成器を用いて数列を作る:
s0=14025256
sn+1=(sn)2mod20300713
これらの数s0s1s2…を連結して無限長の数字列wを作る。
すなわちw=14025256741014958470038053646...となる。
正の整数kに対し、もし数字の合計がkとなるwの部分文字列が存在しないなら、p(k)を 0 と定義する。もし数字の合計がkとなるwの部分文字列が少なくとも一つ存在するなら、zをそのような部分文字列の中で最も前に出てくる部分文字列の先頭の位置として、p(k)=zと定義する。
例えば:
部分文字列 1, 14, 1402, ...
はそれぞれ数字の合計が 1, 5, 7, ... であり、
1文字めから始まるので、p(1)=p(5)=p(7)=...=1となる。
部分文字列 4, 402, 4025, ...
はそれぞれ数字の合計が 4, 6, 11, ... であり、
2文字めから始まるのでp(4)=p(6)=p(11)=...=2となる。
部分文字列 02, 0252, ...
はそれぞれ数字の合計が 2, 9, ... であり、
3文字めから始まるのでp(2)=p(9)=...=3となる。
部分文字列 025 は 3 文字めから始まり数字の合計は 7 だが、より前にある(1 文字めから始まる)部分文字列が数字の合計が 7 であるため、p(7)=1であって 3 ではないことに注意せよ。
0<k≤103では∑p(k)=4742であることがわかる。
0<k≤2×1015において∑p(k)を求めよ。