素数の二進法表示に関する素朴でヘンな疑問

 ガウスの暗算能力はピカ一であって、それがシバシバ偉大な定理とその証明に貢献している。平凡な数学好事家である者には定理の発見は無縁だろうが、数値計算と疑問を立てることはいくらでもできる。パソコンにより驚異的な計算力を付与された者としてはヤリガイがあるし、余裕もある。

 そういう自由に甘えて、ここでもまた、素朴でヘンな疑問を数値計算で示す。
素数を二進法表示すると「0」「1」の列となり、「1」が多く出現するであろう。何故なら、2以外の素数の二進法表示の末尾は「1」であるからだ。
 では、総体として自然数の二進法表示に対して、どのくらい「1」が多めに出現するのであろうか?
無用な疑問ではあるが、計算は面倒である。
そのアルゴリズムは易しい。

1)N個の素数を与える。
2)二進法表示にする
3)その二進法表示の全体を「0」「1」の文字列分解する
4)「0」の数「1」の数をカウントする

同じようなことを自然数1〜nについても行い、結果を比較してみる。

 はじめの10個の素数ではこうなる。
1){2, 3, 5, 7, 11, 13, 17, 19, 23, 29}
2){"10", "11", "101", "111", "1011", "1101", "10001", "10011", "10111", "11101"}
3){{1, 0}, {1, 1}, {1, 0, 1}, {1, 1, 1}, {1, 0, 1, 1}, {1, 1, 0, 1}, {1, 0, 0, 0, 1}, {1, 0, 0, 1, 1}, {1, 0, 1, 1, 1}, {1, 1, 1, 0, 1}}
4)「1」, 27個  「0」, 11個


n=10では傾向も何もないので、n=1000の結果を示す。
図では「0」の個数を分母とし、「1」の個数を分子にしている。

なんか、ピークがある。

自然数1000個の同じ計算結果である。


 こちらの方がピークははっきり見える。
もちろん、1の数は素数の方が多めであるが、このピークはなんだろうか。

 あーところで、ベンフォードの法則には従うのかもしれない。だが、それでも素数の方が多くなる傾向は説明できないのではないか?

 より一般的な問題設定としては、「自然数素数でのn進法表示での数字列に関して統計的差異はあるか」ということになる。その参照すべき定理はベンフォードの法則なのだろう。




【補強】
 もう少し踏ん張って、n=10000までの素数を計算してみた。大きなピークがあるのが目を引く。
今朝の思いつきだが、このピークはメルセンヌ素数に該当するのかな。2^p-1だから。



自然数と対比させたのが下図である。赤線が自然数だ。ピークが弱く、素数よりも1が少ない。