素数間距離

user-pic
0

エラトステネスの篩などのアルゴリズムで生成された素数を、小さい順からみていると、1つの素数と次の素数までの距離が気になってきた。特に、その距離が2である素数対は、双子素数と呼ばれて、古来より有名である。私も、駄文ながら、双子素数などの記事を書いてみた。

さて、双子素数を一般化して、素数間距離がnの素数対をかりに、n-SP(n-spaced prime number pair)と呼ぶことにする。nが1の素数対は、(2,3)しかないので、ここでは3以上の素数だけを考慮することにする。すると当然ながら、nは偶数となる。

そこで、素数定理で数えた、1000000000までの50847534個の素数について、素数間距離の分布を計算してみた。なお、素数定理では1000000000までの素数の個数が50847533個と示されているが、これは私が数え上げのために書いたPerlプログラムに単純ミスがあったためで、すなわち最後に$n++をしておくのを忘れたためであった。

その分布のグラフをExcelで描いてみると、以下のとおりである。

これだと全体の分布の傾向は分かるが細かい数字がみえないので、念のため具体的な数字を示す表も示す。

DistanceFrequencyDistanceFrequencyDistanceFrequencyDistanceFrequencyDistanceFrequencyDistanceFrequency
23424506434246796608979182695109103484767124468957
142464565161846097183351032201824043221569679242367474
2611195852812192433021779913268389634719531361171524
385487464064878042954456443896344633472048577247
503280665224580454410754562114625818194860371839
62115558641189516621678768883967012556472126663
7462526765511378105313805352282379828478077
862779388288789058057921928294176699631078
9816175100169001022239310410310106871910815459
1109065112713911410892116471011845021209621
122297512431361265863128204313028131323510
13414871361297138258914015161429531441555
1466681487241501486152506154583156798
158306160360162534164247166182168443
170198172158174255176128178106180200
1828018489186101188331906319274
194321964119873200282022320446
206132081821048212122141121615
21862201222211224622662283
2303232123413236523812405
242424422464248425042521
254025602580260126202640
266026802700272027402761
278028002821------

この表から見て取れるのは、意外にも、素数間距離が6の倍数のときの頻度が特異的に高いことである。もし双子素数が無限にあるなら、少なくとも素数間距離が6の素数対(6-SP)も無限にあるかもしれない。

また、当然に一般にnが大きくなるほど頻度は下がるのであるが、nが6の倍数のとき頻度が急に増える。どうも6という数はやはり素数間距離で特殊である。

そもそも、6-SPは実質的に2-SPよりも多いのかもしれない。もしどちらも加算無限なら大小なんて論じても仕方ないようであるが、任意の有限の正の数Nを選んだとき、常にN以下で6-SPが2-SPより大きいなら、6-SPは実質的に2-SPよりも多いと呼んでもいいのだと思われる。

あと、素数間距離の概念は数論で意外に本質的らしくて、こちらのJames Maynardの論文によれば、以下が成立するらしい。すなわち、n→∞とするとき、

  • pn+1 - pn ≦ 12
  • pn+2 - pn ≦ 600

これは、私が誤解しているのでなれば、素数間距離が12以下になる素数対は無限に存在するという意味である。これは素数間距離が2になる素数対は無限に存在することまでは主張するものではないので、双子素数の無限性は証明されていないが、かなり肉薄しているといえる。

最後に蛇足ながら、上記1000000000までの素数間距離分布を計算したプログラムを示しておく。

open FI, "<sieve.txt" or die "sieve.txt not found.\n";
open FO, ">SP.txt";

$p = 3;  # セットする素数の初期値
$max = 0;

while (<FI>)      {
 chomp;
 next if ( $_ < 5 ); # 5になるまでスキップ
 
 $s = $_ - $p;  # 素数間ギャップ
 $s /= 2;       # 配列に入れるので2で割る
 $k = sprintf "%04d",$s;
 $SP{$k} = $k;
 $SP{$k}->{N}++;
 $p = $_;
 if ( $max < $k )  {
   $max = $k;
 }
}

for ( $i = 1; $i <= $max; $i++ )   {
  $k = sprintf "%04d",$i;
  printf FO "%d\t%d\n",$i*2,$SP{$k}->{N};
}

close FI;
close FO;

トラックバック(0)

トラックバックURL: http://commutative.world.coocan.jp/mt/mt-tb.cgi/4878

コメント(2)

| コメントする

面白いです。

pn+1 - pn ≦ 12
pn+2 - pn ≦ 600

この右辺の境界長 12, 600 も6の倍数ですね。この論文の式1.4の機械計算を用いた実証となっているように見えます。

user-pic

ISSEIさん

この地味な数論の記事にコメントをもらえると思っていなかったので、うれしいです。

> この右辺の境界長 12, 600 も6の倍数ですね。

ああ、そうですね。なんか気づきませんでした。

コメントする

月別 アーカイブ

このブログ記事について

このページは、あやたろうが2018年4月18日 05:08に書いたブログ記事です。

ひとつ前のブログ記事は「依田九段のスカーミッシュ」です。

次のブログ記事は「発達障害」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。