主題
Search

普拉特證書


普拉特證書是一種基於費馬小定理逆定理素性證書。在普拉特(Pratt,1975)的工作之前,Lucas-Lehmer 檢驗一直被純粹視為一種在很多時候有效的啟發式方法(Knuth 1969)。普拉特(1975)表明,透過將 Lehmer 的素性啟發式方法遞迴地應用於 n-1 的因子,可以使其成為一種非確定性過程。作為這一結果的推論,普拉特(1975)成為第一個證明由此產生的樹意味著素因數分解屬於複雜度類 NP 的人。

要生成普拉特證書,假設 n 是一個正整數,而 {p_i}n-1因子的集合。假設存在一個整數 x (稱為“證人”),使得 x^(n-1)=1 (mod n),但當 e(n-1)/p_i 之一時,x^e≢1 (mod n)。那麼費馬小定理逆定理指出 n素數(Wagon 1991,第 278-279 頁)。

透過將費馬小定理逆定理應用於 n 並遞迴地應用於 n-1 的每個聲稱的因子,可以生成給定素數的證書。換句話說,普拉特證書給出了數字 a 是乘法 (mod p) 的原根的證明,這與 a 的階為 p-1 這一事實一起,證明了 p 是一個素數

PrattCertificate

上圖給出了 n=7919 素性的證書。短劃線右邊的數字是左邊數字的證人{p_i} 對於 n-1=7918{2,37,107} 給出。由於 7^(7918)=1 (mod 7919)7^(7918/2), 7^(7918/37), 7^(7918/107)≢1 (mod 7919),7 是 7919 的證人因子 7918=7919-1 是 2、37 和 107。2 是所謂的“自證人”(即,它被認為是素數而無需進一步證明),其餘的證人顯示為巢狀樹。它們共同證明 7919 確實是素數。因為它需要 n-1因式分解,所以普拉特證書的方法最適合應用於小數字(或那些已知 nn-1 易於分解的數字)。

對於小數字而言,普拉特證書的生成速度比其他型別的素性證書更快。Wolfram 語言函式ProvablePrimeQ[n] 在 Wolfram 語言包中PrimalityProving`因此,僅對於超過一定限制的數字(預設情況下為 10^(10)),才生成 Atkin-Goldwasser-Kilian-Morain 證書,而對於較小的數字則生成普拉特證書。


另請參見

Atkin-Goldwasser-Kilian-Morain 證書, 費馬小定理逆定理, Lucas-Lehmer 檢驗, 素性證書, 證人

使用 探索

參考文獻

Knuth, D. E. §4.5.4 in The Art of Computer Programming, Vol. 2: Seminumerical Algorithms. Reading, MA: Addison-Wesley, 1969.Pratt, V. "Every Prime Has a Succinct Certificate." SIAM J. Comput. 4, 214-220, 1975.Wagon, S. Mathematica in Action. New York: W. H. Freeman, pp. 278-285, 1991.Wilf, H. §4.10 in Algorithms and Complexity. Englewood Cliffs, NJ: Prentice-Hall, 1986.

在 中被引用

普拉特證書

請這樣引用

Weisstein, Eric W. "普拉特證書。" 來自 Web 資源。 https://mathworld.tw/PrattCertificate.html

主題分類