热门问题
时间线
聊天
视角
費馬質數判定法
来自维基百科,自由的百科全书
Remove ads
費馬質數判定法是一種質數判定法則,利用隨機化算法判斷一個數是合數還是可能是質數。
概念
根據費馬小定理:如果 是質數,,那麼
- 。
如果我們想知道 是否是質數,我們在中間選取 ,看看上面等式是否成立。如果對於數值 等式不成立,那麼 是合數。如果有很多的a能夠使等式成立,那麼我們可以說 可能是質數,或者偽質數。
在我們檢定過程中,有可能我們選取的 都能讓等式成立,然而 卻是合數。這時等式
被稱為Fermat liar。如果我們選取滿足下面等式的a
那麼 也就是對於 的合數判定的Fermat witness。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | |
最小的 值 | 4 | 341 | 91 | 15 | 4 | 35 | 6 | 9 | 4 | 9 | 10 | 65 | 4 | 15 | 14 | 15 | 4 | 25 | 6 | 21 | 4 | 21 | 22 | 25 | 4 | 9 | 26 | 9 | 4 | 49 |
Remove ads
算法以及運行時間
整個算法可以寫成是下面兩大部:
- 輸入: 需要檢定的數;:參數之一來決定檢定需要進行的次數。
- 輸出:當 是合數時輸出合數,否則輸出可能是質數:
- 重複 次:
- 在 範圍內隨機選取
- 如果 那麼返回合數
- 返回可能是質數
若使用模指數運算的快速算法,這個算法的運行時間是 ,這裡 是一個隨機的 需要檢定的次數, 是我們想要檢定的數。
Remove ads
缺點
眾所周知,對於卡米歇爾數 ,全部令 的 都是費馬騙子數(Fermat liars)。儘管卡米歇爾數很是稀有,但是卻足夠令費馬質數判定法無法像如米勒-拉賓和Solovay-Strassen的質性檢定般,成為被經常實際應用的質性檢定。
一般的,如果 不是卡米歇爾數,那麼至少一半的
是費馬證人數(Fermat witnesses)。在這裡,令 為費馬證人數、 為費馬騙子數。那麼
所有的都是費馬證人數。
Remove ads
應用
參見
參考
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Section 31.8: Primality testing. Introduction to Algorithms Second. MIT Press; McGraw-Hill. 2001: 889–890. ISBN 0-262-03293-7.
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads