ランダムなメモランダム

雑草のような雑念と雑考

素数ギャップを評価してみる

 素数と次の素数の差分を素数ギャップと呼ぶ。2と3では1。これは例外で、3と5、5と7などの2が多い。これが双子素数と呼ばれるペアになる。

 素数MathematicaではPrime[i]で呼び出せる。i番目の素数だ。至極簡単でかなり早い。
 こうして、Prime[i]とその次の素数 Prime[i + 1]をペアでまとめて評価する。Table文でいいだろう。

Table[{Prime[i], Prime[i + 1] - Prime[i]}, {i, 1, 100000}]

 最初の十万組の素数ギャップのリストが生成できる。横軸は素数Prime[i]そのもので、縦軸は素数ギャップであります。


40以下のギャップはザラであるのがわかる。140を超えるgapがあるのもスゴイ。

この図はListPlotでまとめて書き下せます。

ListPlot[Table[{Prime[i], Prime[i + 1] - Prime[i]}, {i, 1, 100000}], PlotRange -> All]

ところで、素数ギャップは「2」が最多かというとそうでもなさそうなのだ。
これをヒストグラムで示したのが下のグラフ。横軸は素数ギャップ。縦軸は頻度であります。もちろん100000個までの素数の範囲という制約つきだ。

ちょっと見にくいかもしれないが、6が一番多いのであります。
そのコードはこうなります。

list00:=[Table[{Prime[i], Prime[i + 1] - Prime[i]}, {i, 1, 100000}]
listPgap:=Transpose[Tally[list00]All, 1]1

としておいて、Histgramを含む統計パッケージを呼び出す。

Needs["Histograms`"]
Histogram[listPgap]

マシンパワーがあるユーザは是非、もっと巨大数での傾向を探求してみてほしい。