素数と次の素数の差分を素数ギャップと呼ぶ。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]
マシンパワーがあるユーザは是非、もっと巨大数での傾向を探求してみてほしい。