2007年4月15日,オイラー生誕300年を迎えました.オイラーの仕事のひとつに素数生成式があります.その値の多くが素数となる式で,
(1)オイラーの2次式:f(x)=x^2+x+41
はx=0〜39に対して素数を与えます.
他にも素数をよく生成する式が昔から知られていて
(2)ルビーの2次式:f(x)=|36x^2−810x+2753| (x=0〜44)
(3)フロベニウスの2次式:f(x)=2x^2+2x+19
(4)4x^2+170x+1847
(5)4x^2+4x+59
などがあげられます.
ところで,素数定理
π(x)〜x/logx (x→∞)
はxを超えない素数の個数π(x)を与える近似的な公式であって,xに近い2つの連続した素数間の平均距離はおよそlogx,あるいは,ランダムにとった整数xが素数である確率がおよそ1/logxだといってもよいでしょうし,また,n番目の素数pnについての漸近評価
pn〜nlogn
とも等価です.これをもっと精密に評価すると
pn=n(logn+loglogn−1)+o(nloglogn/logn)
になります.
pnを上下から評価する不等式は比較的精密なものが知られていますが,pnを表す式(関数)については本質的に良い結果は得られていないようです.今回のコラムでは,京都府在住の藤本実さんに教えて頂いたn番目の素数pnに関する定理を氏の許可を得て掲載することにします.
[参]数学セミナー,375,25(1973),日本評論社
[参]http://arxiv.org/PS_cache/math-path/pdf/0609/0609013.pdf
[参]http://arxiv.org/PS_cache/math-path/pdf/0702/0702011.pdf
===================================
【1】藤本の定理
『素数を表す漸化式
pn=[{logζ(an)+Σ(r=1~n-1)log(1−pr^-an)}^-1/an]+1
が成立する.ここで,prはr番目の素数,ζ(s)はリーマンのゼータ関数,[・]はガウス記号,また,anはan≧pnを満たす任意の定数で,たとえば,2^2n,2^n,n(n−1)/2などをとることができる.』
(anはnlog(nlogn)(n≧6)より小さくできない.)
この定理は(すべての素数でなく)p1,p2,・・・,pn-1だけからpnを定める式を与えている.その際,オイラーの積表示
ζ(s)=Σn^(-s)=Π(1−p^(-s))^(-1)
をうまく利用していることは,このコラムをご覧の方であれば容易に理解できるであろう.藤本の漸化式は素数をゼータ関数そのものの値で表す式といってもよい.
証明は難しくはなく,
1/(pn−1)^an≧{logζ(an)+Σ(r=1~n-1)log(1−pr^-an)>1/pn^an
が成立することを示せばよいのだが,それについては
[参]http://arxiv.org/PS_cache/math-path/pdf/0609/0609013.pdf
に譲ることにする.
早速簡単な検証に移るが,n=1のとき,a1=2とすると
ζ(a1)=ζ(2)=π^2/6
p1=[{logζ(2)}^-1/2]+1=2
が容易に確かめられる.
なお,s→∞のとき,
pn={logζ(s)+Σ(r=1~n-1)log(1−pr^-s)}^-1/s
とガウス記号を用いずに書くことができる.
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[補]an=2mとすれば
ζ(an)=ζ(2m)=2^(2m-1)Bm/(2m)!・π^2m
Bmはベルヌーイ数で,ζ(2m)はπ^2mの有理数倍になることがわかっている.ζ(3)は無理数になることが1978年になってようやく証明された.その他のζ(2k+1)については,ζ(5),ζ(7),・・・,ζ(17),ζ(19)の8つの特殊値のうち,ひとつは無理数であることが2001年に証明されたという.
ベルヌーイ数が整数論にとって欠かすことができない存在なのは,ゼータ関数との関係にその理由があり,リーマンのゼータ関数
ζ(s)=Σ1/n^s=Π(1−p^(-s))^(-1)
とベルヌーイ数との間には,次の公式が成り立ちます.
Π1/(1−p^(-2m))=ζ(2m)=Bm/2・(2π)^(2m)/(2m)!
ベルヌーイ数は
x/tanhx=xcoshx/sinhx
=1+B1/2!(2x)^2−B2/4!(2x)^4+B6/2!(2x)^6−・・・
あるいは,x/tanhx=2x/(exp(2x)−1)+xより,
x/(exp(x)−1)=1−1/2x+B1/2!x^2−B2/4!x^4+B3/6!x^6−・・・
の係数として得られます(生成関数).
[補]4n+1型素数の漸化式および対応するゼータ関数の値を求める方法
an=4mとすれば
ζ(an)=ζ(4m)=(2ω)^4m/(4m)!・H4m
Hmはフルヴィッツ数,ωはレムニスケート周率です.
ω=2∫(0,1)1/√(1-x^4)dx=1/2B(1/4,1/2)
=2^(-3/2)π^(-1/2)Γ^2(1/4)=2.62205・・・
レムニスケートの定数ωは円に対するπと同じ役割を演じています.
π=2∫(0,1)1/√(1-x^2)dx=3.14159・・・(円周率)
ω=2∫(0,1)1/√(1-x^4)dx=2.62205・・・(レムニスケート周率)
tanx=Σ(-1)^(n-1)2^2n(2^2n−1)B2nx^(2n-1)/(2n)!
の展開式は,ベルヌーイ数の別の形の母関数表示を与えています.すなわち,三角関数の展開公式にもベルヌーイ数がでてくるのですが,
1/sin^2(x)=1/x^2+Σ(-1)^(n/2-1)2^nBn/n・x^(n-2)/(n−2)!
三角関数(円関数)を楕円関数に置き換えても,展開係数はベルヌーイ数と似たような数論的性質をもってくることが予想されます.
このような考え方は三角関数についての現象を一般化するときの常套手段となっているのですが,その展開係数がフルヴィッツ数Hnです.三角関数の場合のベルヌーイ数
1/sin^2(x)=1/x^2+Σ(-1)^(n/2-1)2^nBn/n・x^(n-2)/(n−2)!
と対比させると,フルヴィッツ数はワイエルシュトラスの楕円関数のローラン展開
p(z)=1/z^2+Σ2^nHn/n・z^(n-2)/(n−2)!
で定義されます.
H4=1/10,H8=3/10,H12=567/130,H16=43659/170,H20=392931/10,
H24=1724574159/130,・・・
[補]ベルヌーイ数を(二重級数でなく)単級数で表わすと
Bn=(1+[2(2^2n−1)(2n)!/2^2n-1π^2n・Σ(m=1~3n)m^ー2n])/2(2^2n−1) (Chowla,1972)
===================================
【2】雑感
藤本の定理を使えば,たとえばan=2^nなり2n^2として素数列{pn}が逐次計算されます.もっともこれは原理的な可能性であって,nが大きくなるとpnの計算は急速に煩雑さを増していくのですが,藤本の定理の応用としてすぐ思いつくのはベルトランの仮説の別証やルジャンドルの予想,双子素数予想を攻略するひとつの方法を与えてくれるのではないかということです.以下にベルトランの仮説,ルジャンドルの予想,双子素数予想を説明しますが,我こそはと思わん方は是非挑戦してみてください.
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
1845年にフランスの数学者ベルトランは任意の数nと2nの間には少なくとも一つの素数pが存在する(n<p≦2n),同じことですが素数pの次の素数は2pより小さい(pk+1 <2pk )という予想を立てました.50年以上たって,ロシアの数学者チェビシェフがこれを証明しました.チェビシェフはもっと狭い範囲の中にも必ず素数が存在することを証明したのですが,1911年,イタリアの数学者ボノリスはnと3n/2の間にある素数の個数の近似式を導きました.
また,ルジャンドルの予想
「n^2と(n+1)^2の間に常に素数が存在する」
は未解決であって,リーマン予想:リーマンのゼータ関数ζ(s)の実部が0と1の間にあり,零点の実部ははすべて1/2であるという仮説と同値な命題として知られています.
一方,その差が2であるような素数のペア(p,p+2)を双子素数と呼びます.小さな双子素数には(3,5),(5,7),(11,13),(17,19),(29,31),(41,43)・・・など,ちょっと大きなものでは(22271,22273),・・・などがあります.双子素数は数が大きくなるにつれてどんどん少なくなっていくのですが,双子素数が無限に多く存在するかどうかは今のところわかっていません.
自然数nの約数の個数をd(n)とします.すなわち,d(n)は約数関数であり,d(n)=2のときnは素数,d(n)=d(n+2)=2のとき(n,n+2)は双子素数です.
|ζ(s)|^2=Σd(n)/n^s
と表されることより,|ζ(s)|^2はd(n)のディリクレ型母関数であることがわかります.
双子素数の分布に関しては,ハーディとリトルウッドによって,
πtwin(x)〜Cx/(logx)^2
ただし,pを3以上の素数として
C=2Π(1−1/(p−1)^2)=1.3203・・・
と予想されています.
===================================