目次         

素数の分布(1)

distribution of prime numbers

 

素数の分布はゼータ関数の整数点での値により精度良くわかる。偶数と奇数で差があるかを調べる。そしてリーマンの式R(x)よりもシンプルで、精度が良い式を見つけたのでそれを紹介する。


実数x以下の素数の個数をπ(x)とする。素数定理によると x/ln x はその近似式となる。

また対数積分 li(x) はより精度の良い式である。

 

li(x)を基にして連分数化すると次の式になる。xが大きいときの指数積分の漸近展開(asymptotic expansion)を利用している。「連分数展開 特殊関数の展開」を参照。

  (L=ln x)

x10^4から10^23 程度であれば42までの5項でも近い値になる。x/(ln x-1) x/ln x よりも精度が良いのは、このような展開になるからである。

x

π(x)

x/(L-1--16/(L-9))

li(x)

10^5

9,592

9,624.3

9,629.8

10^10

455,052,511

455,055,607.0

455,055,614.6

10^15

29,844,570,422,669

29,844,571,473,717.5

29,844,571,475,287.6

 

連分数ではなく通常の分数での近似式は A Formula for π(x) ... にある。

その式は分母が級数で   x/{L-1-(1/L)-(3/L2)-(13/L3)-(71/L4)- }   となっている。

 

上記の連分数式は次のように変形できる。

  (L=ln x)

 

参考: 同じπの記号を使用する円周率の連分数が、似た形式であるのは不思議だ。

             


更に精度の良いリーマンの式がある。

mathworld.wolfram Riemann Prime Counting Function を参照。

  (Riemann)     μ(x)はメビウスの関数

    素数が奇数個 → -1=μ(2)=μ(3)=μ(5)=μ(7)=μ(2*3*5)=

    平方因子あり →  0=μ(22)=μ(22*2)=μ(32)=μ(22*3)=

    素数が偶数個 →  1=μ(1)=μ(2*3)=μ(2*3*5*7)=

    μ(k)kの値は   1,-2,-3,0,-5,6,-7,0,0,10,-11,0,-13,14,15,0,-17,0,-19,…

 

この式は次のグラム級数と等しい。mathworld.wolfram  Gram Series を参照。

  (Gram)

1/ζ(s)=Σμ(k)/k^s を使用して両式の級数展開を比較するとその関係がわかる。

 

またラマヌジャンによる次の似た式がある。

  (Ramanujan)

ベルヌーイ数ではなくゼータ関数値で表すと

グラムの式は自然数に対応し、ラマヌジャンの式は偶数に対応している。奇数に対応する式を求める。ln x=0 つまりx=1での値を一致させるために、以下ではラマヌジャンによる式には1を加える。



 素数の積と円周率・ゼータ関数 で定義したSk=k!ζ(k)/(2k-1πk)を使用して、グラムの式を変形、展開すると

  Sk 自然数

1を加えたラマヌジャンの式を変形、展開すると

  B2k偶数

 

S2k=|B2k| を利用してベルヌーイ数を消去すると

  S2k+1奇数

奇数に対応するこの式は、偶数に対応した式に比較して係数等が1増加したもので、同一形式と言ってよい。素数分布に関する上記のリーマンの式においては、ゼータ関数の正の偶数点と奇数点における値(に関係するB2kS2k+1)のどちらか一方があれば良いようだ。


グラム級数やラマヌジャンの式はリーマンの式よりも計算に向くが、ゼータ関数値やベルヌーイ数の値を必要とする。このような数値を必要としない係数が単純なπ(x)近似式を求める。奇数に対応する式から

    |E2k|=22k+2(2k)!L(2k+1)/π2k+1

を利用してS2k+1を消去すると

ここで L(2k+1)=1-1/32k+1+1/52k+1-  4n+3型の素数の積である

(32k+1-1)/(32k+1+1)*(72k+1-1)/(72k+1+1)*  1と見なすと

  (Sugimoto)

この式はグラム級数を偶数項だけにして、ζ(2k+1)の替わりに 22k/(22k+1-1) としたものに相当する。具体的な係数で展開すると L=ln x として

S(x)=1 +7L2/16 +31L4/1536 +127L6/276480 +73L8/11796480 +2047L10/37158912000 +…

S(x)=1 +7(L/4)2 +(31/6)(L/4)4 +(254/135)(L/4)6 +(73/180)(L/4)8 +(4094/70875)(L/4)10 +…


S(x)xが小さい値で10のべき乗の場合はリーマンの式よりも精度が良い。他の値でも同程度の精度と思われる。x=2105 におけるπ(x)との差は

最大値(+)  x=88788 において  R(x)  14.37  S(x)  18.29

最小値(-)  x=59797 において  R(x) -15.90  S(x) -12.49

最大値-最小値()  R(x)  30.27  S(x)  30.78

 

x

π(x)

[R(x)]-π(x)

[S(x)]-π(x)

S(x)

10^1

4

1

0

3.96

10^2

25

1

0

25.26

10^3

168

0

1

168.66

10^4

1,229

-2

0

1,228.58

10^5

9,592

-5

0

9,591.51

10^6

78,498

29

38

78,535.85

10^7

664,579

88

105

664,683.87

10^8

5,761,455

97

128

5,761,583.12

10^9

50,847,534

-79

-19

50,847,514.70

10^10

455,052,511

-1,828

-1,715

455,050,796.28

10^11

4,118,054,813

-2,318

-2,101

4,118,052,711.76

10^12

37,607,912,018

-1,476

-1,055

37,607,910,963.44

10^13

346,065,536,839

-5,773

-4,949

346,065,531,890.37

10^14

3,204,941,750,802

-19,200

-17,573

3,204,941,733,229.01

10^15

29,844,570,422,669

73,218

76,453

29,844,570,499,121.85

10^20

2,220,819,602,560,918,840

-4,891,825

-4,783,168

2,220,819,602,556,135,672.15

[x]xに一番近い整数(四捨五入)である。R(x)はグラム級数で計算した。


x=2100 でのグラフは次の通り。

 

 

S(x)-π(x)の 最小値は x=73 -1.40, 最大値は x=96 0.44, 平均値は x=2100 -0.54である。この範囲ではR(x)に較べて1/2程度小さな値で、π(x)の下限値に近い値になる。ここで下限値とは x=素数-1 における値のことである。

 

x105 付近でのグラフは次の通り。

 

このS(x)の線は、偶然π(x)の線と交差して近い値になっているのではない。π(x)の傾向線と同じ傾きになっている。またR(x)との差は約4であり、殆ど一定している。S(x)の線がπ(x)の水平線の左端、中央、右端のすぐ近くを通過しているのは注目に値する。

 

このπ(x)の近似式S(x)は単純な係数であるが、精度が良いのは驚きだ。改めて式を書くと

あるいは


π(x)の近似式は多数あると思われるが、以前目にした高精度な式を紹介する。 Roberto Neumann のサイト(ドイツ語)で、彼が2003年に見つけた式である。ページは 左のWissenschaften > 上のprimzahlmengen とたどる。それによるとx1/4からx1/2まで k/ln k を加えた値がπ(x)に近い。例えばx=104の場合は 10/ln 10 + 11/ln 11 + + 100/ln 100 = 1229.03… となる。

kの開始値、終了値が整数にならない場合等、詳しくは上記サイトを参照。

 


ゼータ関数の零点の値を用いることにより、正確な分布がわかる。簡単に紹介すると

  としたとき 

  (Σはζ(s)の零点ρをわたる)

 

この様子はアニメーションにより確認できる。ρ1〜ρk とΣの項を増加させたグラフは例えばExeter大学 のサイト内にある。

 

          目次