「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会...

42
明日話したくなる「素数」のお話 日曜数学者 順平(@tsujimotterhttp://tsujimotter.info プログラマのための 数学勉強会 (2015/01/30)

Upload: junpei-tsuji

Post on 15-Jul-2015

7.436 views

Category:

Science


3 download

TRANSCRIPT

Page 1: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

明日話したくなる「素数」のお話

日曜数学者辻 順平(@tsujimotter)

http://tsujimotter.info

プログラマのための数学勉強会 (2015/01/30)

Page 2: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

日曜数学(者)とは

プログラマのための数学勉強会 22015/1/30

興味の赴くままに「趣味として」

数学を探究する行為(人)

【一番「熱い」と思う対象について学ぶ・話す】

Page 3: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

明日話したくなる数学豆知識Advent Calendar 2014

2015/1/30 プログラマのための数学勉強会 3

1日目 グロタンディーク素数 14日目 知られざる反例

2日目 統計学における自由度 15日目 ペンローズ・タイル

3日目 一時期話題になった素数の… 16日目 積と微分とデルタ関数

4日目 数の呼び方 17日目 正十七角形は作れる

5日目 素数のスモールギャップに… 18日目 おつりでフラクタル

6日目 ほとんどいたるところ 19日目 期待値とある値以上の確率との関係

7日目 無理数の無理数乗は無理数か? 20日目 たのしい積分

8日目 例のレナ 21日目 アルキメデスと円周率

9日目 二次方程式の解の公式の別の… 22日目 すごい判別式

10日目 ステップ関数の微分 23日目 モンストラス・ムーンシャイン

11日目 ラングレーの問題とフランク… 24日目 クリスマス・イブには iを語ろう

12日目 数列の和の算数 25日目 3Dプリンタで正十二面体を作って…

13日目 おすすめ数学小説:ペトロス…

Page 4: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

明日話したくなる「素数」のお話

プログラマのための数学勉強会 42015/1/30

Page 5: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

素数とは

2, 3, 5, 7, 11, 13, …

プログラマのための数学勉強会 52015/1/30

定義:「 1と自分自身以外に正の約数を持たない数( 1を除く)」

ごーせーすー

Page 6: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

素数は大人気

2015/1/30 プログラマのための数学勉強会 6

http://page.freett.com/hougi/contents/prime.htmlより引用

Page 7: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

素数は「数の元素」

105

プログラマのための数学勉強会 72015/1/30

5 21

3 7

Page 8: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

ユークリッド(B.C. 323 - B.C.283)

「素数は無限に存在する」

プログラマのための数学勉強会 82015/1/30

Page 9: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

素数がいつ現れるか

2015/1/30 プログラマのための数学勉強会 9

2 3 5 7 11 13 17 19

(素数のリズムパターンを「演奏する」デモをしました)

Page 10: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

ガウスの発想

カール・フリードリヒ・ガウス(1777 - 1855)

対数表

プログラマのための数学勉強会 102015/1/30

Page 11: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

ガウスの素数階段

プログラマのための数学勉強会 112015/1/30

2

3 4

5 6

7 8 9 10

11

Page 12: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

ガウスの素数階段

プログラマのための数学勉強会 122015/1/30

2

3 4

5 6

7 8 9 10

11

100

?1から100までの素数階段を作るためには、いったい何段の高さまで積み重ねる必要があるのか?

Page 13: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

プログラマのための素数の数え方

$ irbirb> require 'prime'trueirb> Prime.each(10).count=> 4irb> Prime.each(100).count=> 25

プログラマのための数学勉強会 132015/1/30

Page 14: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

1 から 100 までの素数階段

プログラマのための数学勉強会 142015/1/30

ガウスの素数階段(素数 pのときだけ 1 上がる)

何か法則がありそう

Page 15: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

ガウスの予想

プログラマのための数学勉強会 152015/1/30

以下の素数の個数𝑥𝑥

𝑥𝑥 ≒ log 𝑥𝑥

Page 16: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

ガウスの予想を確かめる

プログラマのための数学勉強会 162015/1/30

X X 以下の素数 X / X 以下の素数 対数表との誤差(比)

10 4 2.5 -8%100 25 4.0 +15%

1,000 168 6.0 +16%10,000 1,229 8.1 +13%

100,000 9,592 10.4 +10%1,000,000 78,498 12.7 +8%

÷ =÷ =÷ =÷ =÷ =÷ =

Page 17: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

素数定理のつかいかた

プログラマのための数学勉強会 172015/1/30

1,000,000以下の素数は

およそ12個に1個が素数

12 分の 1 で素数が出るサイコロ

Page 18: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

ガウスの素数定理の言い換え

プログラマのための数学勉強会 182015/1/30

ガウスの素数階段(素数 pのときだけ 1 上がる)

ガウスの素数定理の式: 𝑦𝑦 = Li 𝑥𝑥

Li 𝑥𝑥 =1

log 2+

1log 3

+1

log 4+ ⋯+

1log 𝑥𝑥

対数積分

Page 19: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

ベルンハルト・リーマン(1826 - 1866)

プログラマのための数学勉強会 192015/1/30

Page 20: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

「与えられた数より小さい素数の個数について」

プログラマのための数学勉強会 202015/1/30

Page 21: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

リーマンによる新手法

素数階段を

フーリエ変換したる

21

Page 22: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

プログラマのための数学勉強会 222015/1/30

基本振動の波

フーリエ変換の復習タイム

2倍振動の波

3倍振動の波

Page 23: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

プログラマのための数学勉強会 232015/1/30

フーリエ変換の復習タイム

分解した波を足し合わせると・・・

Page 24: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

フーリエ変換

「任意の周期関数は基本振動の波と倍音の波の和によって表せる」

プログラマのための数学勉強会 242015/1/30

とは

𝑓𝑓 𝑥𝑥 = 𝐴𝐴1cos 𝑥𝑥 + �𝑘𝑘=2

𝐴𝐴𝑘𝑘 cos 𝑘𝑘𝑥𝑥

倍音の波基本振動の波任意の周期関数

Page 25: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

素数階段のフーリエ変換

「リーマンの素数階段はガウスの素数定理の式とゼータ関数のゼロ点の波の和によって表せる」

プログラマのための数学勉強会 252015/1/30

𝐽𝐽 𝑥𝑥 = Li 𝑥𝑥 −�𝑘𝑘=1

∞2𝑥𝑥𝛽𝛽𝑘𝑘𝜌𝜌𝑘𝑘 log 𝑥𝑥

cos 𝛼𝛼𝑘𝑘 log 𝑥𝑥 − arg𝜌𝜌𝑘𝑘

ゼータ関数のゼロ点の波ガウスの素数定理の式リーマンの素数階段

Page 26: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

リーマンの素数階段

プログラマのための数学勉強会 262015/1/30

ガウスの素数階段(素数 pのときだけ 1 上がる)

リーマンの素数階段(素数のべき乗 pmのとき 1/m 上がる)

Page 27: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

リーマンの素数階段

プログラマのための数学勉強会 272015/1/30

ガウスの素数定理の式

リーマンの素数階段(素数のべき乗 pmのとき 1/m 上がる)

ドンピシャリ!

Page 28: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

• 1つ目の「ゼロ点の波」

• 2つ目の「ゼロ点の波」

プログラマのための数学勉強会 282015/1/30

Page 29: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

「ゼロ点の波」を足していきましょう

プログラマのための数学勉強会 292015/1/30

Page 30: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

可視化アプリつくってみた

"Visualization of Riemann's Prime Number Formula"http://tsujimotter.info/works/prime-number-formula/

Page 31: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

𝐽𝐽 𝑥𝑥 = Li 𝑥𝑥 −�𝑘𝑘=1

∞2𝑥𝑥𝛽𝛽𝑘𝑘𝜌𝜌𝑘𝑘 log 𝑥𝑥

cos 𝛼𝛼𝑘𝑘 log 𝑥𝑥 − arg𝜌𝜌𝑘𝑘

プログラマのための数学勉強会 312015/1/30

「周波数」

「振幅」

「ゼロ点の波」の分布

Page 32: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

「ゼロ点の波」の分布

プログラマのための数学勉強会 322015/1/30

すべての「振幅」が 1/2

(リーマン予想)

「振幅」

「周波数」

Page 33: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

今日一番伝えたいこと

「趣味で数学」は楽しい!!

19世紀くらいまでの数学は勉強すればアマチュアでも理解できる

プログラミングは「趣味で数学」の武器• わからなければ作ってみる• 数学者にはできないこともできるかも

2015/1/30 プログラマのための数学勉強会 33

Page 34: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

素数の遊び方• ウラムの螺旋

2015/1/30 プログラマのための数学勉強会 34

ほかにもあるよ!

4𝑥𝑥2 − 2𝑥𝑥 + 41 𝑥𝑥 = 0, 1, 2, …

Wikipedia 「ウラムの螺旋」より引用

Page 35: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

まとめ

• 明日話したくなる「素数」のお話• ガウスの素数定理(素数階段と対数表の関係)

• リーマンの素数公式(素数階段のフーリエ変換)

• リーマン予想(「ゼロ点の波」の「振幅」はきれいに揃う)

• 日曜数学• プログラムを作って「素数」で遊んでみよう

プログラマのための数学勉強会 352015/1/30

Page 36: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

宣伝

• ブログもあるよブログ: http://tsujimotter.hatenablog.com作品集: http://tsujimotter.info

• ほかにもネタはたくさんあるので、興味がある人はぜひお話しましょう!

2015/1/30 プログラマのための数学勉強会 36

Page 37: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

参考文献1.マーカス・デュ・ソートイ著「素数の音楽」新潮クレスト・ブックス (2005).

リーマン予想や素数と人類の戦いの歴史について丁寧に解説してくれています。今回の話の流れはこの本を参考にしています。

2.ジョン・ダービーシャー「素数に憑かれた人たち」日経BP社(2004).

リーマンの素数公式について、もう少し突っ込んで知りたいと」思った方向け。「ゼータ関数」と「素数公式」がなぜ関係するのかを、非常に丁寧に解説してくれています。

3.ハロルド・M・エドワーズ著「明快ゼータ関数とリーマン予想」講談社 (2012).

本気で勉強したい人向け。素数公式の導出が完全な形で解説されています。

2015/1/30 プログラマのための数学勉強会 37

Page 38: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

2015/1/30 プログラマのための数学勉強会 38

以下、補足スライド

Page 39: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

注意点• 今回のスライドで登場した数式は、説明の都合上、ところどころ端折っていたり、簡単化しています。

• リーマンの論文と今回のスライドでは以下の点が異なりますので、参考にする際はご注意ください。

2015/1/30 プログラマのための数学勉強会 39

Page 40: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

対数積分 Li 𝑥𝑥 の定義• 本スライド

Li 𝑥𝑥 =1

log 2+

1log 3

+1

log 4+ ⋯+

1log 𝑥𝑥

• リーマンの論文Li 𝑥𝑥 = �

0

𝑥𝑥 d𝑡𝑡log 𝑥𝑥

2015/1/30 プログラマのための数学勉強会 40

ただし、積分は「コーシーの主値」をとる

Page 41: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

リーマンの素数公式• 本スライド

𝐽𝐽 𝑥𝑥 = Li 𝑥𝑥 −�𝑘𝑘=1

∞2𝑥𝑥𝛽𝛽𝑘𝑘𝜌𝜌𝑘𝑘 log 𝑥𝑥

cos 𝛼𝛼𝑘𝑘 log 𝑥𝑥 − arg𝜌𝜌𝑘𝑘

• リーマンの論文𝑓𝑓 𝑥𝑥 = Li 𝑥𝑥 −�

𝛼𝛼

Li 𝑥𝑥12+𝑖𝑖𝛼𝛼 + Li 𝑥𝑥

12−𝑖𝑖𝛼𝛼 + �

𝑥𝑥

∞ 1𝑥𝑥2 − 1 �

d𝑥𝑥log𝑥𝑥 + log 𝜉𝜉 0

2015/1/30 プログラマのための数学勉強会 41

今回の計算では未使用

(無視できる誤差)

計算では使用したがスライドでは触れず

Page 42: 「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg

リーマンの素数階段• 「リーマンの素数階段」という言葉は、今回便宜的に導入しましたが、ほかでは使われていない言葉なので注意してください。

• Wikipedia「与えられた数より小さい素数の個数について」では「離散関数」という書き方をしています。

• ちなみに、𝐽𝐽 𝑥𝑥 という表記は参考文献3で用いられています。リーマンの原論文では 𝑓𝑓 𝑥𝑥を用いています。

2015/1/30 プログラマのための数学勉強会 42