Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
⾮正則素数チェッカー
⽇曜数学者 辻順平@tsujimotter
第10回 ⽇曜数学会 2017年10⽉21⽇
素数は2通りに分類できる
正則素数 ⾮正則素数
2
𝑝 は⾮正則素数
⟺ 𝑝 次円分体のイデアル類群 𝐶𝑙(ℚ(𝜁()) の
位数を 𝒑 が割り切る
def
フェルマーの最終定理
𝑥( + 𝑦( = 𝑧( に関連
3
103	以下の正則素数/⾮正則素数
正則素数:
3,	5,	7,	11,	13,	17,	19,	23,	29,	31,	
41,	43,	47,	53,	61,	71,	73,	79,	83,	89,	97,	…
⾮正則素数:
37,	59,...
•イデアル類群ってよくわからん
•⾮正則素数のリストなんて⾒つからないよ
5
⾮正則素数と親しみたい!
遊びたい!
6
⾮正則素数チェッカー
以下のURLで遊べるよ!
http://tsujimotter.info/irregulars/
7
http://tsujimotter.info/irregulars/
8
どうやって計算するか?
イデアル類群の計算ムズイ・・・
9
⾮正則素数の⾯⽩さ
実は「ベルヌーイ数」と関係がある!
<呼んだ?
10
ベルヌーイ数の起源
1 + 2 + 3 + ⋯ 𝑛 =									
𝑛 𝑛 + 1
2
								=
𝟏
𝟐
𝑛 +
1
2
𝑛8
																		
18
+ 28
+ 38
+ ⋯ 𝑛8
=
𝑛 𝑛 + 1 2...
ベルヌーイ数の起源
1 + 2 + 3 + ⋯ 𝑛 =									
𝑛 𝑛 + 1
2
								=
𝟏
𝟐
𝑛 +
1
2
𝑛8
																		
18
+ 28
+ 38
+ ⋯ 𝑛8
=
𝑛 𝑛 + 1 2...
ベルヌーイ数
1 + 2 + 3 + ⋯ 𝑛 =									
𝑛 𝑛 + 1
2
								=
𝟏
𝟐
𝑛 +
1
2
𝑛8
																		
18
+ 28
+ 38
+ ⋯ 𝑛8
=
𝑛 𝑛 + 1 2𝑛 +...
𝐵> の計算
CC A 𝐵A + CC @ 𝐵@ + CC 8 𝐵8 + CC ; 𝐵; + CC > 𝐵> = 5
∴ 1 + 5 ⋅
1
2
+ 10 ⋅
1
6
+ 10 ⋅ 0 + 5𝐵> = 5
∴ 𝐵> = −
1
30
14
ベルヌーイ数の例
𝐵A = 1, 𝐵8 =
1
6
, 𝐵> = −
1
30
, 𝐵J =
1
42
, 𝐵K = −
1
30
,	
𝐵@A =
5
66
, 𝐵@8 = −
𝟔𝟗𝟏
2730
, 𝐵@> =
7
6
, 	 𝐵@J = −...
クンマーの判定法
素数 𝑝 が
TU
V
の分⼦を割り切る
⟺ 𝑝 は⾮正則素数
𝑝 = 691 は
TWX
@8
= −
𝟔𝟗𝟏
;8YJA
の分⼦を割り切る ⟺ 	𝑝 = 691 は⾮正則素数
例:
16
691	が割り切るベルヌーイ数
17
クリック
ベルヌーイ数の値がわかる!
18
要するに
• ベルヌーイ数の分⼦を割る素数が⾮正則素数
• ベルヌーイ数の分⼦が知りたい!
19
⾮正則素数チェッカーを⽀える技術
• Bernmm 1.1	
(http://web.maths.unsw.edu.au/~davidharvey/code/bernmm/)
• ベルヌーイ数を(たぶん)世界⼀⾼速で計算するライブラリ
20
David	Harvey,	
"A	multimodular algorithm	for	computing	Bernoulli	numbers,"	
arXiv:0807.1347 (2008).
複数の modulo	で計算した結果を⽤いる...
Multimodular algorithm
𝐵V	mod	𝑝 の値を計算する(⾼速に計算できる!)
mod	2, 3, 5, 7, ⋯ , 𝑝] の値から中国剰余定理により
𝐵V	mod	2 ⋅ 3 ⋅ 5 ⋅ 7 ⋅ ⋯ ⋅ 𝑝] を復元す...
Multimodular algorithm
𝐵V	mod	𝑝 の値を計算する(⾼速に計算できる!)
mod	5, 7, 11,13, ⋯ , 𝑝] の値から中国剰余定理により
𝐵V	mod	5 ⋅ 7 ⋅ 11 ⋅ 13 ⋅ ⋯ ⋅ 𝑝] を...
Multimodular algorithm
𝐵V	mod	𝑝 の値を計算する(⾼速に計算できる!)
mod	5, 7, 11,13, ⋯ , 𝑝] の値から中国剰余定理により
𝐵V	mod	5 ⋅ 7 ⋅ 11 ⋅ 13 ⋅ ⋯ ⋅ 𝑝] を...
25
覚えておきたい⾮正則素数
http://tsujimotter.info/irregulars/
26
最⼩の⾮正則素数
http://tsujimotter.info/irregulars/
27
みんな⼤好き
http://tsujimotter.info/irregulars/
28
37	と 691	を並べると・・・
http://tsujimotter.info/irregulars/
29
最初の双⼦⾮正則素数
http://tsujimotter.info/irregulars/
30
Wolstenholme	prime
𝐵(`; を割り切る素数 𝑝
16843	と 2124679	しか
⾒つかっていない
31
Wolstenholme	prime
もうひとつの
32
5個のベルヌーイ数を割り切る 6個のベルヌーイ数を割り切る33
参考(Step	1)
mod	𝑝 におけるベルヌーイ数の合同式を使う [Lang,	90]	:
𝑐b ≢ 1	mod	𝑝 かつ 0 < 𝑐 < 𝑝 を満たす 𝑐 を⽤いて以下が成り⽴つ.
𝐵b ≡	
𝑘
1 − 𝑐b
f 𝑥b`@ℎh 𝑥
(`...
Upcoming SlideShare
Loading in …5
×

非正則素数チェッカー #日曜数学会

603 views

Published on

2017年10月21日に開催された 第10回 #日曜数学会 で発表した資料です.

「非正則素数チェッカー」はこちらで遊べます!
http://tsujimotter.info/irregulars/

tsujimotter のノートブック
http://tsujimotter.hatenablog.com

Published in: Education
  • Be the first to comment

非正則素数チェッカー #日曜数学会

  1. 1. ⾮正則素数チェッカー ⽇曜数学者 辻順平@tsujimotter 第10回 ⽇曜数学会 2017年10⽉21⽇
  2. 2. 素数は2通りに分類できる 正則素数 ⾮正則素数 2
  3. 3. 𝑝 は⾮正則素数 ⟺ 𝑝 次円分体のイデアル類群 𝐶𝑙(ℚ(𝜁()) の 位数を 𝒑 が割り切る def フェルマーの最終定理 𝑥( + 𝑦( = 𝑧( に関連 3
  4. 4. 103 以下の正則素数/⾮正則素数 正則素数: 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 41, 43, 47, 53, 61, 71, 73, 79, 83, 89, 97, … ⾮正則素数: 37, 59, 67, 101, 103, … ※ 2 はどちらにも属さない 4
  5. 5. •イデアル類群ってよくわからん •⾮正則素数のリストなんて⾒つからないよ 5
  6. 6. ⾮正則素数と親しみたい! 遊びたい! 6
  7. 7. ⾮正則素数チェッカー 以下のURLで遊べるよ! http://tsujimotter.info/irregulars/ 7
  8. 8. http://tsujimotter.info/irregulars/ 8
  9. 9. どうやって計算するか? イデアル類群の計算ムズイ・・・ 9
  10. 10. ⾮正則素数の⾯⽩さ 実は「ベルヌーイ数」と関係がある! <呼んだ? 10
  11. 11. ベルヌーイ数の起源 1 + 2 + 3 + ⋯ 𝑛 = 𝑛 𝑛 + 1 2 = 𝟏 𝟐 𝑛 + 1 2 𝑛8 18 + 28 + 38 + ⋯ 𝑛8 = 𝑛 𝑛 + 1 2𝑛 + 1 6 = 𝟏 𝟔 𝑛 + 1 2 𝑛8 + 1 3 𝑛; 1; + 2; + 3; + ⋯ 𝑛; = 𝑛 𝑛 + 1 2 8 = 𝟎𝑛 + 1 4 𝑛8 + 1 2 𝑛; + 1 4 𝑛> 11
  12. 12. ベルヌーイ数の起源 1 + 2 + 3 + ⋯ 𝑛 = 𝑛 𝑛 + 1 2 = 𝟏 𝟐 𝑛 + 1 2 𝑛8 18 + 28 + 38 + ⋯ 𝑛8 = 𝑛 𝑛 + 1 2𝑛 + 1 6 = 𝟏 𝟔 𝑛 + 1 2 𝑛8 + 1 3 𝑛; 1; + 2; + 3; + ⋯ 𝑛; = 𝑛 𝑛 + 1 2 8 = 𝟎𝑛 + 1 4 𝑛8 + 1 2 𝑛; + 1 4 𝑛> 12
  13. 13. ベルヌーイ数 1 + 2 + 3 + ⋯ 𝑛 = 𝑛 𝑛 + 1 2 = 𝟏 𝟐 𝑛 + 1 2 𝑛8 18 + 28 + 38 + ⋯ 𝑛8 = 𝑛 𝑛 + 1 2𝑛 + 1 6 = 𝟏 𝟔 𝑛 + 1 2 𝑛8 + 1 3 𝑛; 1; + 2; + 3; + ⋯ 𝑛; = 𝑛 𝑛 + 1 2 8 = 𝟎𝑛 + 1 4 𝑛8 + 1 2 𝑛; + 1 4 𝑛> 𝐵@ 𝐵8 𝐵; 𝐵A = 1 13
  14. 14. 𝐵> の計算 CC A 𝐵A + CC @ 𝐵@ + CC 8 𝐵8 + CC ; 𝐵; + CC > 𝐵> = 5 ∴ 1 + 5 ⋅ 1 2 + 10 ⋅ 1 6 + 10 ⋅ 0 + 5𝐵> = 5 ∴ 𝐵> = − 1 30 14
  15. 15. ベルヌーイ数の例 𝐵A = 1, 𝐵8 = 1 6 , 𝐵> = − 1 30 , 𝐵J = 1 42 , 𝐵K = − 1 30 , 𝐵@A = 5 66 , 𝐵@8 = − 𝟔𝟗𝟏 2730 , 𝐵@> = 7 6 , 𝐵@J = − 𝟑𝟔𝟏𝟕 510 , 𝐵@K = 𝟒𝟑𝟖𝟔𝟕 798 , 𝐵8A = − 𝟐𝟖𝟑 ⋅ 𝟔𝟏𝟕 330 , 𝐵88 = − 𝟏𝟎𝟑 ⋅ 𝟐𝟐𝟗𝟒𝟕𝟗𝟕 30 15
  16. 16. クンマーの判定法 素数 𝑝 が TU V の分⼦を割り切る ⟺ 𝑝 は⾮正則素数 𝑝 = 691 は TWX @8 = − 𝟔𝟗𝟏 ;8YJA の分⼦を割り切る ⟺ 𝑝 = 691 は⾮正則素数 例: 16
  17. 17. 691 が割り切るベルヌーイ数 17
  18. 18. クリック ベルヌーイ数の値がわかる! 18
  19. 19. 要するに • ベルヌーイ数の分⼦を割る素数が⾮正則素数 • ベルヌーイ数の分⼦が知りたい! 19
  20. 20. ⾮正則素数チェッカーを⽀える技術 • Bernmm 1.1 (http://web.maths.unsw.edu.au/~davidharvey/code/bernmm/) • ベルヌーイ数を(たぶん)世界⼀⾼速で計算するライブラリ 20
  21. 21. David Harvey, "A multimodular algorithm for computing Bernoulli numbers," arXiv:0807.1347 (2008). 複数の modulo で計算した結果を⽤いることで ベルヌーイ数を⾼速に計算できる 100,000,000 番⽬のベルヌーイ数 𝐵@AAAAAAAA も約5⽇で計算できる 21
  22. 22. Multimodular algorithm 𝐵V mod 𝑝 の値を計算する(⾼速に計算できる!) mod 2, 3, 5, 7, ⋯ , 𝑝] の値から中国剰余定理により 𝐵V mod 2 ⋅ 3 ⋅ 5 ⋅ 7 ⋅ ⋯ ⋅ 𝑝] を復元する |𝐵V| のオーダをゼータ関数を使って⾒積る 2 ⋅ 3 ⋅ 5 ⋅ 7 ⋅ ⋯ ⋅ 𝑝] が |𝐵V| を超えたら 𝐵V そのものが得られる Step 1: Step 2: Step 3: 22
  23. 23. Multimodular algorithm 𝐵V mod 𝑝 の値を計算する(⾼速に計算できる!) mod 5, 7, 11,13, ⋯ , 𝑝] の値から中国剰余定理により 𝐵V mod 5 ⋅ 7 ⋅ 11 ⋅ 13 ⋅ ⋯ ⋅ 𝑝] を復元する |𝐵V| のオーダをゼータ関数を使って⾒積る 2 ⋅ 3 ⋅ 5 ⋅ 7 ⋅ ⋯ ⋅ 𝑝] が |𝐵V| を超えたら 𝐵V そのものが得られる Step 1: Step 2: Step 3: 23
  24. 24. Multimodular algorithm 𝐵V mod 𝑝 の値を計算する(⾼速に計算できる!) mod 5, 7, 11,13, ⋯ , 𝑝] の値から中国剰余定理により 𝐵V mod 5 ⋅ 7 ⋅ 11 ⋅ 13 ⋅ ⋯ ⋅ 𝑝] を復元する |𝐵V| の⼤きさをゼータ関数を使って⾒積る |𝐵V| < 5 ⋅ 7 ⋅ 11 ⋅ 13 ⋅ ⋯ ⋅ 𝑝] であれば, 𝐵V そのものが得られる Step 1: Step 2: Step 3: 24
  25. 25. 25
  26. 26. 覚えておきたい⾮正則素数 http://tsujimotter.info/irregulars/ 26
  27. 27. 最⼩の⾮正則素数 http://tsujimotter.info/irregulars/ 27
  28. 28. みんな⼤好き http://tsujimotter.info/irregulars/ 28
  29. 29. 37 と 691 を並べると・・・ http://tsujimotter.info/irregulars/ 29
  30. 30. 最初の双⼦⾮正則素数 http://tsujimotter.info/irregulars/ 30
  31. 31. Wolstenholme prime 𝐵(`; を割り切る素数 𝑝 16843 と 2124679 しか ⾒つかっていない 31
  32. 32. Wolstenholme prime もうひとつの 32
  33. 33. 5個のベルヌーイ数を割り切る 6個のベルヌーイ数を割り切る33
  34. 34. 参考(Step 1) mod 𝑝 におけるベルヌーイ数の合同式を使う [Lang, 90] : 𝑐b ≢ 1 mod 𝑝 かつ 0 < 𝑐 < 𝑝 を満たす 𝑐 を⽤いて以下が成り⽴つ. 𝐵b ≡ 𝑘 1 − 𝑐b f 𝑥b`@ℎh 𝑥 (`@ ]i@ mod 𝑝 ℎh 𝑥 = 𝑥 mod 𝑝 − 𝑐 𝑥/𝑐 mod 𝑝 𝑝 + 𝑐 − 1 2 この式に 𝑐 = 𝑔( ℤ/𝑝ℤ × の原始根)を代⼊. 34

×