← 戻る ライブラリ › 算術と数論 › 解析数論 算術と数論
素数定理 整数の中で素数の密度が近似的に1/ln(n)として薄くなっていく様子を記述する。
直観 素数は本当にどれほど珍しいのか? 最初の10個の整数のうち、4 4 4 個が素数——密度 40 % 40\% 40% 。最初の100個のうち、素数はわずか 25 25 25 個——25 % 25\% 25% 。最初の100万個のうち、わずか 78,498 78{,}498 78 , 498 個——8 % 8\% 8% 未満。素数は決して尽きない(ユークリッドが紀元前300年頃に証明した)が、遠くを見るほど希少になっていく。素数定理はその速さを正確に定める:大きな数 x x x 付近での素数の密度はおよそ 1 / log x 1/\log x 1/ log x である。
1..60 1..60 1..60 上のエラトステネスの篩:各行 10 10 10 マス中の緑の素数を数えると、1..10 1..10 1..10 に 4 4 4 個、11..20 11..20 11..20 に 4 4 4 個、以下 2 , 2 , 3 , 2 2, 2, 3, 2 2 , 2 , 3 , 2 個となり、素数密度が 1 / ln x 1/\ln x 1/ ln x に従って薄まる様子が見える。中高 素数を数える:関数 π(x) 定義: 素数計数関数
π ( x ) \pi(x) π ( x ) は p ≤ x p \le x p ≤ x を満たす素数 p p p の個数を表す。例えば π ( 100 ) = 25 \pi(100) = 25 π ( 100 ) = 25 :100 100 100 までの素数は 2 , 3 , 5 , 7 , … , 97 2,3,5,7,\ldots,97 2 , 3 , 5 , 7 , … , 97 。
π ( x ) = # { p ≤ x : p prime } \pi(x) = \#\{\, p \le x : p \text{ prime} \,\} π ( x ) = # { p ≤ x : p prime } 1792年、15歳のとき、カール・フリードリヒ・ガウスは素数表を手作業で調べることから、π ( x ) \pi(x) π ( x ) が対数積分 li ( x ) = ∫ 2 x d t log t \operatorname{li}(x) = \int_2^x \dfrac{dt}{\log t} li ( x ) = ∫ 2 x log t d t によってよく近似されること、同値に、x x x 付近の素数の密度 が 1 / log x 1/\log x 1/ log x のように振る舞うことを予想した。正確な漸近的主張は次の通りである:
π ( x ) ∼ x log x \pi(x) \sim \dfrac{x}{\log x} π ( x ) ∼ log x x 古典的な2つの推定値と π(x) の比較 x π(x) x / ln x li(x) 10 4 4.3 6.8 100 25 21.7 30.1 1,000 168 144.8 177.6 10,000 1,229 1,085.7 1,246.1
大学 初等的な評価と定理全体 θ ( x ) = ∑ p ≤ x log p \theta(x) = \sum_{p \le x} \log p θ ( x ) = ∑ p ≤ x log p とする。このとき、すべての整数 n ≥ 1 n \ge 1 n ≥ 1 について θ ( n ) < ( log 4 ) n \theta(n) < (\log 4)\, n θ ( n ) < ( log 4 ) n 。
なぜ正しいのか? アダマールとド・ラ・ヴァレー・プーサンによる1896年の解析的証明の前に、チェビシェフ(1852年)は二項係数だけを用いて初等的に、素数の個数が x/log x の定数倍の範囲に収まることをすでに示していた。この評価は定理全体のあらゆる証明への後の入力となる重要な初等的要素であり、その中心二項係数の技法はエルデシュによるベルトラン仮説の有名な初等証明の背後にあるものと同じである。
証明 n n n に関する強い数学的帰納法を用いる。基底段階 n = 1 , 2 n=1,2 n = 1 , 2 は自明:θ ( 1 ) = 0 \theta(1)=0 θ ( 1 ) = 0 、θ ( 2 ) = log 2 < log 4 \theta(2)=\log 2 < \log 4 θ ( 2 ) = log 2 < log 4 。
帰納段階では、n n n より小さいすべての正の整数について評価が成り立つと仮定する。n > 2 n>2 n > 2 が偶数なら n n n は素数でないので、帰納法の仮定を n − 1 n-1 n − 1 に適用して θ ( n ) = θ ( n − 1 ) < ( log 4 ) ( n − 1 ) < ( log 4 ) n \theta(n)=\theta(n-1) < (\log4)(n-1) < (\log4)n θ ( n ) = θ ( n − 1 ) < ( log 4 ) ( n − 1 ) < ( log 4 ) n 。
n = 2 m + 1 n=2m+1 n = 2 m + 1 が奇数の場合、係数 ( 2 m + 1 m ) = ( 2 m + 1 ) ! m ! ( m + 1 ) ! \binom{2m+1}{m}=\dfrac{(2m+1)!}{m!\,(m+1)!} ( m 2 m + 1 ) = m ! ( m + 1 )! ( 2 m + 1 )! を考える。これは ( 1 + 1 ) 2 m + 1 (1+1)^{2m+1} ( 1 + 1 ) 2 m + 1 の二項展開の 2 2 m + 1 2^{2m+1} 2 2 m + 1 個の項のうち2回現れる(( 2 m + 1 m ) \binom{2m+1}{m} ( m 2 m + 1 ) として1回、( 2 m + 1 m + 1 ) \binom{2m+1}{m+1} ( m + 1 2 m + 1 ) として1回、両者は等しい)ので、2 ( 2 m + 1 m ) ≤ 2 2 m + 1 2\binom{2m+1}{m} \le 2^{2m+1} 2 ( m 2 m + 1 ) ≤ 2 2 m + 1 、すなわち ( 2 m + 1 m ) ≤ 4 m \binom{2m+1}{m} \le 4^m ( m 2 m + 1 ) ≤ 4 m 。
m + 1 < p ≤ 2 m + 1 m+1 < p \le 2m+1 m + 1 < p ≤ 2 m + 1 を満たすすべての素数 p p p は分子 ( 2 m + 1 ) ! (2m+1)! ( 2 m + 1 )! を割り切るが m ! m! m ! も ( m + 1 ) ! (m+1)! ( m + 1 )! も割り切らない(p > m + 1 p>m+1 p > m + 1 のため)ので、p p p は ( 2 m + 1 m ) \binom{2m+1}{m} ( m 2 m + 1 ) を割り切る。したがってそのようなすべての素数の積が ( 2 m + 1 m ) \binom{2m+1}{m} ( m 2 m + 1 ) を割り切り、∏ m + 1 < p ≤ 2 m + 1 p ≤ ( 2 m + 1 m ) ≤ 4 m \prod_{m+1<p\le 2m+1} p \le \binom{2m+1}{m} \le 4^m ∏ m + 1 < p ≤ 2 m + 1 p ≤ ( m 2 m + 1 ) ≤ 4 m 、すなわち θ ( 2 m + 1 ) − θ ( m + 1 ) ≤ ( log 4 ) m \theta(2m+1)-\theta(m+1) \le (\log 4)\,m θ ( 2 m + 1 ) − θ ( m + 1 ) ≤ ( log 4 ) m 。
m + 1 < n m+1<n m + 1 < n に帰納法の仮定を適用すると θ ( m + 1 ) < ( log 4 ) ( m + 1 ) \theta(m+1) < (\log4)(m+1) θ ( m + 1 ) < ( log 4 ) ( m + 1 ) 。足し合わせると θ ( n ) = θ ( 2 m + 1 ) < ( log 4 ) ( m + 1 ) + ( log 4 ) m = ( log 4 ) ( 2 m + 1 ) = ( log 4 ) n \theta(n)=\theta(2m+1) < (\log4)(m+1) + (\log4)m = (\log4)(2m+1) = (\log4)n θ ( n ) = θ ( 2 m + 1 ) < ( log 4 ) ( m + 1 ) + ( log 4 ) m = ( log 4 ) ( 2 m + 1 ) = ( log 4 ) n となり、帰納法が完了する。
x → ∞ x \to \infty x → ∞ のとき、π ( x ) ∼ x log x \pi(x) \sim \dfrac{x}{\log x} π ( x ) ∼ log x x ;同値に π ( x ) / li ( x ) → 1 \pi(x)/\operatorname{li}(x) \to 1 π ( x ) / li ( x ) → 1 。
なぜ正しいのか? 上のチェビシェフの評価は π(x) を x/log x の定数倍の範囲に収めるが、「漸近的に等しい」ははるかに強い主張である:比 π(x)/(x/log x) は有界であるだけでなく、ちょうど1に収束しなければならない。「有界」から「ちょうど1」へとその隔たりを埋めるには、まったく異なる発想——素数の分布がゼータ関数 ζ(s) の複素零点に符号化されているというリーマンの1859年の洞察——が必要だった。
証明 この証明は解析的な道筋の論理的スケッチ であり、自己完結した導出ではない——カリキュラムのもっと後で導入される複素解析が必要である(詳細はリーマンゼータ関数のトピックを参照)。論証は三段階からなる。
第1段階(θへの帰着):通常の部分和分による議論により、π ( x ) ∼ x / log x \pi(x) \sim x/\log x π ( x ) ∼ x / log x は θ ( x ) ∼ x \theta(x) \sim x θ ( x ) ∼ x と同値であることが示される。ここで θ ( x ) = ∑ p ≤ x log p \theta(x)=\sum_{p\le x}\log p θ ( x ) = ∑ p ≤ x log p は上のチェビシェフの評価と同じものである。
第2段階(ζを通じたθの符号化):リーマンの明示公式は θ ( x ) \theta(x) θ ( x ) (より正確には近縁の ψ ( x ) = ∑ p k ≤ x log p \psi(x)=\sum_{p^k\le x}\log p ψ ( x ) = ∑ p k ≤ x log p )を ζ ( s ) = ∑ n n − s = ∏ p ( 1 − p − s ) − 1 \zeta(s)=\sum_n n^{-s}=\prod_p(1-p^{-s})^{-1} ζ ( s ) = ∑ n n − s = ∏ p ( 1 − p − s ) − 1 の零点を用いてほぼ正確に表す:主要項 x x x は ζ \zeta ζ が s = 1 s=1 s = 1 に持つ単純極から来て、ζ \zeta ζ の各零点 ρ = β + i γ \rho=\beta+i\gamma ρ = β + iγ はおよそ x β x^{\beta} x β の大きさの振動する誤差項を寄与する。
第3段階(鍵となる非消失性):ψ ( x ) ∼ x \psi(x)\sim x ψ ( x ) ∼ x ——したがって定理——は、どの零点も β = 1 \beta=1 β = 1 を持たない場合、すなわち ζ ( 1 + i t ) ≠ 0 for all t ∈ R \zeta(1+it) \ne 0 \text{ for all } t \in \mathbb{R} ζ ( 1 + i t ) = 0 for all t ∈ R の場合に限り成り立つ。アダマールとド・ラ・ヴァレー・プーサンは1896年、それぞれ独立に、初等的な三角不等式(3 + 4 cos θ + cos 2 θ ≥ 0 3+4\cos\theta+\cos2\theta\ge0 3 + 4 cos θ + cos 2 θ ≥ 0 )を σ → 1 + \sigma\to1^+ σ → 1 + のときの log ∣ ζ ( σ ) 3 ζ ( σ + i t ) 4 ζ ( σ + 2 i t ) ∣ \log|\zeta(\sigma)^3\zeta(\sigma+it)^4\zeta(\sigma+2it)| log ∣ ζ ( σ ) 3 ζ ( σ + i t ) 4 ζ ( σ + 2 i t ) ∣ に適用してこの非消失性を証明した:1 + i t 1+it 1 + i t に零点があればこの式は − ∞ -\infty − ∞ に発散するが、不等式はそれを禁じる。ニューマンの1980年の証明は第3段階の帰結を短いタウバー型論法に凝縮したが、論理的な骨格——1 1 1 における極、他所の零点、直線 Re ( s ) = 1 \operatorname{Re}(s)=1 Re ( s ) = 1 上の非消失性——はリーマンとアダマールが示した通りである。
大学 実世界での応用と具体例 素数定理は理論だけのものではない:RSA鍵を生成する暗号ソフトウェアや、その鍵を破るのがどれほど難しいかを見積もる暗号解読者は、どちらも与えられた大きさの近くに素数がどれほど密に詰まっているかを知ることに直接依存している。定理の密度推定 1/log(x) は、平均して、素数に行き当たるまでにいくつのランダムな奇数を検査しなければならないかを教えてくれる。
例: 512ビットのRSA素数を見つけるのに何回のランダム試行が必要か?
RSA鍵生成ルーチンはランダムな512ビットの奇数(N = 2 512 N=2^{512} N = 2 512 付近)を選び、素数になるまで各々を素数判定する。素数定理の密度推定を用いると、平均して何個の奇数候補を検査すると期待されるか?
解答 定理により、N N N 付近でのすべて の整数の中の素数密度は約 1 / log N 1/\log N 1/ log N 。奇数に限るとその密度は2倍になる(2 2 2 を除き偶数は決して素数でない)ので、奇数候補の中の密度は約 2 / log N 2/\log N 2/ log N 。
ここで log N = log ( 2 512 ) = 512 log 2 ≈ 512 × 0.6931 ≈ 354.9 \log N = \log(2^{512}) = 512\log 2 \approx 512 \times 0.6931 \approx 354.9 log N = log ( 2 512 ) = 512 log 2 ≈ 512 × 0.6931 ≈ 354.9 。よって密度は約 2 / 354.9 ≈ 0.00563 2/354.9 \approx 0.00563 2/354.9 ≈ 0.00563 、すなわちこの大きさ付近ではおよそ 177 177 177 個に 1 1 1 個の奇数が素数である。
各候補がこの成功確率を持つ独立なベルヌーイ試行だとすれば、最初の成功までの期待試行回数は 1 / p ≈ 177 1/p \approx 177 1/ p ≈ 177 。これがまさに、実際のRSA実装が(明らかな合成数を先にふるいにかける高速な篩を使いつつ)大きな素数を1つ生成するのに数百回程度の素数判定が必要だと報告する理由である。
例: 半素数を試し割りで因数分解する際のコスト見積もり
暗号解読者が、100桁の困難な半素数 N N N (ほぼ等しい2つの素数の積)を、N \sqrt{N} N までのすべての素数を検査する試し割りで因数分解する際に、何個の候補約数を検査する必要があるかの大まかな見積もりを知りたいとする。素数定理を用いてその素数の個数を見積もれ。
解答 N N N は 100 100 100 桁なので N ≈ 10 100 N \approx 10^{100} N ≈ 1 0 100 、N ≈ 10 50 \sqrt{N} \approx 10^{50} N ≈ 1 0 50 。素数定理により π ( N ) ≈ N / log N \pi(\sqrt{N}) \approx \sqrt{N}/\log\sqrt{N} π ( N ) ≈ N / log N 。
ここで log N = log ( 10 50 ) = 50 log 10 ≈ 50 × 2.3026 ≈ 115.1 \log\sqrt{N} = \log(10^{50}) = 50\log 10 \approx 50 \times 2.3026 \approx 115.1 log N = log ( 1 0 50 ) = 50 log 10 ≈ 50 × 2.3026 ≈ 115.1 。よって π ( N ) ≈ 10 50 / 115.1 ≈ 8.7 × 10 47 \pi(\sqrt{N}) \approx 10^{50}/115.1 \approx 8.7\times10^{47} π ( N ) ≈ 1 0 50 /115.1 ≈ 8.7 × 1 0 47 。
この天文学的に巨大な個数——どんなコンピューターも列挙はおろか検査すら到底できない——こそが、実際の暗号法の合成数に対して試し割りが無用である理由であり、その困難性の証明は知られていないにもかかわらずRSAの安全性が素因数分解の計算不可能性に依拠している理由である。素数定理はまさに「天文学的に巨大」を身振りで示すだけでなく定量化することを可能にするものである。
よくある誤り. 「π(x) ~ x/log x」は比 π(x)/(x/log x) が1に収束することを意味し、差 π(x) − x/log x が小さいことを意味しない:実際その差は無限大に発散する(両方の項よりはるかに遅くではあるが)。第二のよくある誤り:x/log x が自動的に最良 の初等的推定だと考えること——対数積分 li(x) は、両方とも π(x) と漸近的に同値であるにもかかわらず、これまで表にされたすべての x について一貫してはるかに正確である。第三の混同:定理が特定の 数が素数かどうかを教えてくれると信じること;それは範囲全体の平均密度を記述するだけで、個々の整数については何も語らない。 歴史的ノート
1792年、15歳のとき、カール・フリードリヒ・ガウスは対数表の中で素数を手作業で表にし始め、x付近でのその密度が 1/log x に追従しているように見えることに気づいた;証明を発表することはなかったが、1849年の手紙でこの予想に言及した——誰かがそれを証明できるようになる何十年も前のことである。
カール・フリードリヒ・ガウス
歴史的ノート
リーマンが素数をゼータ関数に結びつけた1859年の論文を土台に、ジャック・アダマールとシャルル=ジャン・ド・ラ・ヴァレー・プーサンは1896年、ζ(s) が直線 Re(s)=1 上に零点を持たないことを示すことで独立に素数定理を証明し、一世紀以上証明されずにいた予想を解決した。
ベルンハルト・リーマン
π(x) ~ x/log x とは正確には何を意味するか?
大きな x で π(x) は x/log x に正確に等しい 比 π(x)/(x/log x) は x → ∞ のとき1に収束する 差 π(x) − x/log x は0に収束する π(x) は常に x/log x より小さい
x = 10,000 での x/ln x を最も近い整数に丸めるといくつか(ln 10000 ≈ 9.210)?
1,229 1,086 9,210 921
アダマールとド・ラ・ヴァレー・プーサンによる1896年の素数定理の証明はどちらも何の事実に基づいているか?
リーマン予想が正しい ζ(s) は Re(s) = 1 上に零点を持たない すべての偶数は2つの素数の和である 素数は等差数列をなす
N 付近の奇数に対する密度推定 2 / log N 2/\log N 2/ log N によると、2048ビットの奇数のうちおよそどれくらいの割合が素数か(log ( 2 2048 ) ≈ 1419.8 \log(2^{2048}) \approx 1419.8 log ( 2 2048 ) ≈ 1419.8 )?
約710個に1個 約71個に1個 約半分 約7,100個に1個