青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

我叫張小黑
張小黑的掙扎生活
posts - 66,  comments - 109,  trackbacks - 0
費馬小定理:a^(p-1) mod p = 1(p是素數&&a<p&&a>0)

首先我們證明這樣一個結論:如果p是一個素數的話,那么對任意一個小于p的正整數a,a, 2a, 3a, …, (p-1)a
除以p的余數正好是一個1到p-1的
排列。例如,5是素數,3, 6, 9, 12除以5的余數分別為3, 1, 4, 2,正好就是1到4這四個數。
反證法,假如結論不成立的話,那么就是說有兩個小于p的正整數m和n使得na和ma除以p的余數相同。不妨假設n>m,
則p可以整除a(n-m)。但p是素
數,那么a和n-m中至少有一個含有因子p。這顯然是不可能的,因為a和n-m都比p小。
用同余式表述,我們證明了:
(p-1)! ≡ a * 2a * 3a * … * (p-1)a (mod p)
也即:
(p-1)! ≡ (p-1)! * a^(p-1) (mod p)
兩邊同時除以(p-1)!,就得到了我們的最終結論:
1 ≡ a^(p-1) (mod p)

費馬小定里的歐拉推廣:a^φ(m) ≡ 1 (mod m)(其中φ(m)為與m互質的數的個數)

證明與費馬小定理類似

但是費馬小定理的逆命題并不正確,即,當滿足a^(p-1) mod p = 1的數p不一定是素數,例如p=341,a=2,
而此時p=11*13

后來,人們又發現了561, 645, 1105等數都表明a=2時Fermat小定理的逆命題不成立。雖然這樣的數不多,
但不能忽視它們的存在。于是,人們把所
有能整除2^(n-1)-1的合數n叫做偽素數(pseudoprime),意思就是告訴人們這個素數是假的。

不滿足2^(n-1) mod n = 1的n一定不是素數;如果滿足的話則多半是素數。這樣,一個比試除法效率更高的
素性判斷方法出現了:制作一張偽素數
表,記錄某個范圍內的所有偽素數,那么所有滿足2^(n-1) mod n = 1且不在偽素數表中的n就是素數。之所以
這種方法更快,是因為我們可以使用
二分法快速計算2^(n-1) mod n 的值,這在計算機的幫助下變得非常容易;在計算機中也可以用二分查找有序
數列、Hash表開散列、構建Trie樹等
方法使得查找偽素數表效率更高。

有人自然會關心這樣一個問題:偽素數的個數到底有多少?換句話說,如果我只計算2^(n-1) mod n的值,事先
不準備偽素數表,那么素性判斷出
錯的概率有多少?研究這個問題是很有價值的,畢竟我們是OIer,不可能背一個長度上千的常量數組帶上考場。
統計表明,在前10億個自然數中共
有50847534個素數,而滿足2^(n-1) mod n = 1的合數n有5597個。這樣算下來,算法出錯的可能性約為0.00011。
這個概率太高了,如果想免去建
立偽素數表的工作,我們需要改進素性判斷的算法。

最簡單的想法就是,我們剛才只考慮了a=2的情況。對于式子a^(n-1) mod n,取不同的a可能導致不同的結果。一
個合數可能在a=2時通過了測試,
但a=3時的計算結果卻排除了素數的可能。于是,人們擴展了偽素數的定義,稱滿足 a^(n-1) mod n = 1的合數n叫
做以a為底的偽素數(pseudoprime to base a)
。前10億個自然數中同時以2和3為底的偽素數只有1272個,這個數目不到剛才的1/4。這告訴我們如果同時驗證a=2
和a=3兩種情況,算法出錯的概率
降到了0.000025。容易想到,選擇用來測試的a越多,算法越準確。通常我們的做法是,隨機選擇

若干個小于待測數的正整數作為底數a進行若干次測試,只要有一次沒有通過測試就立即把這個數扔回合數的世界。
這就是Fermat素性測試。

人們自然會想,如果考慮了所有小于n的底數 a,出錯的概率是否就可以降到0呢?沒想到的是,居然就有這樣的合數,
它可以通過所有a的測試
(這個說法不準確,詳見我在地核樓層的回復)。 Carmichael第一個發現這樣極端的偽素數,他把它們稱作Carmichael數。
你一定會以為這樣的數一定很大。錯。第一個Carmichael 數小得驚人,僅僅是一個三位數,561。前10億個自然數中
Carmichael數也有600個之多。Carmichael數的存在說明,我們還需要繼續加強素性判斷的算法。

Miller和Rabin兩個人的工作讓Fermat素性測試邁出了革命性的一步,建立了傳說中的 Miller-Rabin素性測試算法。新的測
試基于下面的定理:如果p是素數,x是小于p的正整數,且x^2 mod p = 1,那么要么x=1,要么x=p-1。這是顯然的,因為
x^2 mod p = 1相當于p能整除x^2-1,也即p能整除(x+1)(x-1)。由于p是素數,那么只可能是x-1能被p整除(此時x=1)或x+1能
被p整除(此時x =p-1)。

這就是Miller-Rabin素性測試的方法。不斷地提取指數n-1中的因子2,把n-1表示成d*2^r(其中d是一個奇數)。那么
我們需要計算的東西就變成了a的d*2^r次方除以n的余數。于是,a^(d * 2^(r-1))要么等于1,要么等于n-1。
如果a^(d * 2^(r-1))等于1,定理繼續適用于a^(d * 2^(r-2)),這樣不斷開方開下去,直到對于某個i滿足
a^(d * 2^i) mod n = n-1或者最后指數中的2用完了得到的a^d mod n=1或n-1。這樣,Fermat小定理加強為如下形式:
盡可能提取因子 2,把n-1表示成d*2^r,如果n是一個素數,那么或者a^d mod n=1,或者存在某個i使得a^(d*2^i) mod n=n-1 ( 0<=i<r )
(注意i可以等于0,這就把a^d mod n=n-1的情況統一到后面去了)
Miller-Rabin 素性測試同樣是不確定算法,我們把可以通過以a為底的Miller-Rabin測試的合數稱作以a為底的強偽素
數(strong pseudoprime)。
第一個以2為底的強偽素數為2047。第一個以2和3為底的強偽素數則大到1 373 653。

Miller- Rabin算法的代碼也非常簡單:計算d和r的值(可以用位運算加速),然后二分計算a^d mod n的值
,最后把它平方r次。程序的代碼比想像中的更簡單,我寫一份放在下邊。雖然我已經轉C了,但我相信還有很多
人看不懂C語言。我再寫一次Pascal 吧。函數IsPrime返回對于特定的底數a,n是否是能通過測試。如果函數返回
False,那說明n不是素數;如果函數返回True,那么n極有可能是素數。注意這個代碼的數據范圍限制在longint,
你很可能需要把它們改成int64或高精度計算。
我們下面來演示一下上面的定理如何應用在Fermat素性測試上。前面說過341可以通過以2為底的Fermat測試,
因為 2^340 mod 341=1。如果341真是素數的話,那么2^170 mod 341只可能是1或340;當算得2^170 mod 341確實等于
1時,我們可以繼續查看2^85除以341的結果。我們發現,2^85 mod 341=32,這一結果摘掉了341頭上的素數皇冠,
面具后面真實的嘴臉顯現了出來


對于大數的素性判斷,目前Miller-Rabin算法應用最廣泛。一般底數仍然是隨機選取,但當待測數不太大時,
選擇測試底數就有一些技巧了。比如,如果被測數小于4 759 123 141,那么只需要測試三個底數2, 7和61就足
夠了。當然,你測試的越多,正確的范圍肯定也越大。如果你每次都用前7個素數(2, 3, 5, 7, 11, 13和17)進行
測試,所有不超過341 550 071 728 320的數都是正確的。如果選用2, 3, 7, 61和24251作為底數,那么10^16內
唯一的強偽素數為46 856 248 255 981。這樣的一些結論使得Miller-Rabin算法在OI中非常實用。通常認為,Miller-Rabin素性測試
的正確率可以令人接受,隨機選取 k個底數進行測試算法的失誤率大概為4^(-k)。

posted on 2008-09-23 13:26 zoyi 閱讀(3598) 評論(6)  編輯 收藏 引用 所屬分類: acm數學

FeedBack:
# re: 大素數的檢驗
2008-10-06 01:28 | ecnu_zp
好久沒看你寫的東東了。hoho~~  回復  更多評論
  
# re: 大素數的檢驗
2008-10-08 16:07 | zoyi
@ecnu_zp
煩了累了。。。。羨慕你。。。。也很崇拜你。。真的  回復  更多評論
  
# re: 大素數的檢驗
2008-10-10 21:56 | 無心人
# re: 大素數的檢驗[未登錄]
2012-07-02 04:55 | 菜鳥
有能整除2^(n-1)-1的合數n叫做偽素數(pseudoprime),意思就是告訴人們這個素數是假的。

------------

1007是素數,也能整除2^(n-1)-1,那他是偽素數嗎?  回復  更多評論
  
# re: 大素數的檢驗
2014-08-08 15:09 | edwinkoo
@菜鳥


1007不是素數  回復  更多評論
  
# re: 大素數的檢驗
2015-03-31 12:01 | vcvycy
好文章~  回復  更多評論
  
歡迎光臨 我的白菜菜園

<2008年2月>
272829303112
3456789
10111213141516
17181920212223
2425262728291
2345678

常用鏈接

留言簿(8)

隨筆分類

隨筆檔案

文章檔案

相冊

acmer

online judge

隊友

技術

朋友

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美片在线播放| 欧美在线网址| 国产精品观看| 美脚丝袜一区二区三区在线观看| 性欧美激情精品| 欧美在线三级| 久久久久久久网站| 美日韩精品免费| 欧美精品激情| 国产精品嫩草99a| 国外精品视频| 亚洲精品日韩在线观看| 亚洲一区二区三区精品在线观看| 欧美在线视频一区| 欧美成人一区二免费视频软件| 亚洲人成网站在线观看播放| 夜夜嗨av一区二区三区四季av | 亚洲精品午夜精品| 亚洲一区国产| 麻豆免费精品视频| 一本久道久久综合狠狠爱| 亚洲综合色网站| 玖玖精品视频| 国产精品久久久久毛片大屁完整版 | 欧美成人国产| 欧美精品在线一区二区三区| 国产伦精品一区二区三区免费| 国产精品久久久久国产精品日日| 国产一区自拍视频| 一级日韩一区在线观看| 久久久午夜视频| 在线亚洲一区| 欧美成人免费在线| 国产亚洲精品bv在线观看| 亚洲精品色图| 久久综合九色99| 亚洲自拍都市欧美小说| 欧美a一区二区| 一区二区三区在线观看国产| 亚洲免费影视| 最新亚洲电影| 另类国产ts人妖高潮视频| 国产精品男gay被猛男狂揉视频| 亚洲精品一区二区三区樱花| 久久综合色婷婷| 欧美在现视频| 国产欧美精品久久| 亚洲欧美成人综合| 亚洲久久成人| 欧美激情第一页xxx| 在线成人www免费观看视频| 久久精品二区亚洲w码| 亚洲一区二区三| 欧美视频中文字幕| 国产精品第2页| 国产精品国产三级国产专播品爱网| 在线观看国产一区二区| 久久精品最新地址| 亚洲一区二区三区视频| 欧美激情一区二区三区成人| 亚洲福利视频一区| 欧美1区2区3区| 久久久爽爽爽美女图片| 欧美性猛交一区二区三区精品| 激情成人中文字幕| 久久艳片www.17c.com| 久久精品在线观看| 亚洲成人资源网| 欧美成年人网站| 欧美freesex8一10精品| 亚洲精选视频在线| 99热这里只有精品8| 欧美日韩在线不卡一区| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲另类自拍| 欧美另类女人| av成人老司机| 亚洲一区久久| 韩国av一区二区| 欧美成人日本| 欧美日韩高清在线播放| 亚洲小说欧美另类社区| 亚洲视频在线一区| 国产九九精品| 美日韩在线观看| 欧美日韩国产一中文字不卡| 亚洲欧美日本伦理| 久久精品人人做人人综合| 最新中文字幕一区二区三区| 亚洲精品日韩在线观看| 国产精品午夜在线观看| 欧美福利视频在线| 欧美图区在线视频| 麻豆精品精品国产自在97香蕉| 欧美大片va欧美在线播放| 亚洲综合首页| 久热精品视频| 午夜久久tv| 欧美高清视频在线| 欧美一区二区网站| 欧美极品一区二区三区| 久久久久88色偷偷免费| 欧美日韩午夜激情| 男人的天堂亚洲| 国产精品久久波多野结衣| 欧美不卡高清| 国产午夜精品一区理论片飘花| 亚洲国产老妈| 久久久久久久久岛国免费| 国产精品极品美女粉嫩高清在线| 欧美成人免费网站| 亚洲午夜一区二区三区| 一区二区三区日韩欧美精品| 国产一区二区三区直播精品电影| 亚洲国产欧洲综合997久久| 国产欧美日韩亚洲精品| 国内精品久久久| 黄色亚洲大片免费在线观看| 欧美激情免费在线| 国内外成人在线| 久久视频一区二区| 欧美高清日韩| 久久精品在线| 欧美精品18+| 西西裸体人体做爰大胆久久久| 久久日韩精品| 欧美专区福利在线| 欧美日韩国产欧美日美国产精品| 久久久999精品免费| 国产精品毛片| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲国产精品久久久久婷婷老年| 欧美成人dvd在线视频| 国产免费亚洲高清| 一区二区三区高清| 一本综合久久| 蜜臀久久99精品久久久久久9| 久久久久久亚洲精品中文字幕| 国产日本亚洲高清| 亚洲欧美日韩成人| 欧美一区二区高清在线观看| 欧美性猛交xxxx乱大交退制版| 99re66热这里只有精品3直播 | 一区二区三欧美| 日韩西西人体444www| 欧美日韩精品一区二区| 91久久久久久久久| 亚洲国产欧美不卡在线观看| 美脚丝袜一区二区三区在线观看| 欧美不卡在线| 日韩亚洲不卡在线| 国产精品久久久久久久电影| 亚洲免费影视第一页| 久久免费国产| 亚洲三级国产| 欧美午夜精品理论片a级按摩| 女人天堂亚洲aⅴ在线观看| 欧美在线视频免费观看| 国产亚洲精品久久飘花 | 亚洲午夜精品久久久久久app| 国产亚洲女人久久久久毛片| 中日韩视频在线观看| 亚洲欧美成aⅴ人在线观看| 国产精品成人在线| 性做久久久久久免费观看欧美| 麻豆成人91精品二区三区| 亚洲福利久久| 国产精品久久久久aaaa九色| 欧美在线视频日韩| 亚洲欧洲精品一区二区精品久久久| 夜夜嗨av色一区二区不卡| 国产精品亚洲综合色区韩国| 久久超碰97人人做人人爱| 亚洲国产老妈| 欧美在线视频一区二区三区| 亚洲日本免费电影| 国产精品网红福利| 蜜臀91精品一区二区三区| 亚洲一区二区成人| 亚洲国产精品久久人人爱蜜臀 | 亚洲第一伊人| 午夜免费久久久久| 亚洲精品在线观看免费| 国产乱码精品一区二区三| 欧美不卡激情三级在线观看| 国产乱码精品一区二区三区av| 亚洲国产91精品在线观看| 在线视频你懂得一区| 国产欧美日韩精品丝袜高跟鞋| 久久久水蜜桃av免费网站| 一区二区三区国产在线| 美女精品在线| 亚洲免费影视第一页| 亚洲狠狠婷婷| 国产女主播一区二区| 欧美激情精品久久久久久久变态| 小黄鸭精品aⅴ导航网站入口| 亚洲美女黄色| 亚洲激情av在线| 老司机午夜精品|