数学--数论--Miller_Rabin判断一个大数是不是素数(随机算法)
生活随笔
收集整理的這篇文章主要介紹了
数学--数论--Miller_Rabin判断一个大数是不是素数(随机算法)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前提知識
1,費馬定理:ap?1=1(modp)a^{p-1}=1(mod\ p)ap?1=1(mod?p)😀點我
2,二次探測定理:x2≡1(modp)?x=1∣∣p?1x^{2}\equiv 1(mod\ p)\Rightarrow x=1||p-1x2≡1(mod?p)?x=1∣∣p?1😀點我
但我們注意到,費馬定理其逆定理不能直接用來判斷素數,必須要枚舉很多數,一般情況下我們可以枚舉到1000左右,就可以把long long范圍內的大部分數給判斷完成。
也有例外,即存在一種極端反例卡邁克爾數(一種合數),對于任何卡邁克爾叔,費馬定理都成立。雖然這種極少,在1e8范圍內的整數中,只有255個卡邁克爾數。但不管怎么說還是會被出題人卡死,或者被人hack,雖然這種算法的出錯率為4^-k(k為測試數據的個數)。
而為了防止這種情況出現,有一種東西,叫二次探測定理:
如果p是奇素數,則 x≡1(mod p)的解為x=1或x=p-1(mod p),這個由模運算的性質易得。
總結
以上是生活随笔為你收集整理的数学--数论--Miller_Rabin判断一个大数是不是素数(随机算法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数学--数论--二次探测定理
- 下一篇: Win10上OFFICE不能用了怎么办