素数の間隔の最大値を追っかける

 素数の間隔というと双子素数が有名だ。3と5とか、11と13のような間隔2の素数対のこと。無限にあるかどうかが未解決だったはずだ。
 しかし、素数間の間隔は2だけではない。先日調べてみたのが下記のヒストグラム。横軸は間隔の値。2から始まり、以下4,6,...と2づつ増える。

 100000までの素数における間隔の出現頻度を示している。「2」は特別でも最多でもなく、ここでは「6」が最多になっている。

 それはさておいて、素数間隔のもっとも大きな「間隔」はどう推移してゆくのだろうか?

 例えば、120000までの素数で縦軸に「間隔」。横軸は素数とすると下図になるけれど、100近いのが出現してしばらくそのままだ。

 これを関数としたい。つまり、素数間隔集合Axがあって、それはx以下の素数の間隔の値の集まりだとする。Max[Ax]をxの関数とするというわけ。

xが1000までの計算例を示す。

 もっと大きなxではどうなるかを効率の悪い関数定義で昨夜から計算中であります。

【追記】
 12時間後にようやく、出てきた。xが10000までの結果です。「34」がずいぶんと素数間隔の最大値を維持するのであります。


【追−追記】
アルゴリズムをまっとうに改良して高速化した。xが12000000程度までの結果だ。


 分かりやすくするために、横軸を10の対数に変換して上の図を1000000まで計算したものに置き換える。



さらに補足する。上記での素数ギャップは本来の定義より大きい素数と次の素数のあいだの合成数の数が正式の定義だと下記の本にあった。つまり、自分の計算結果である縦軸から1を引くことになる。

Wellsの本によると、3☓10^1883付近に50206以上になる素数ギャップがあるそうだ。スゲーなあ。

プライムナンバーズ ―魅惑的で楽しい素数の事典 (O’Reilly math series)

プライムナンバーズ ―魅惑的で楽しい素数の事典 (O’Reilly math series)

【ツイツイ追記】
x=10000000までの計算値。前提は前とおんなじ。