主题
Search

Pollard rho 因子分解法


一种 素因数分解算法,也称为 Pollard 蒙特卡洛因子分解法。Pollard rho 因子分解法有两个方面。第一个方面是迭代公式直到它陷入循环的想法。设 n=pq, 其中 n 是要分解的数,pq 是其未知的素因子。迭代公式

 x_(n+1)=x_n^2+a (mod n),
(1)

或几乎任何多项式公式(x_n^2-2 是一个例外)对于任何初始值 x_0 都会产生一个最终陷入循环的数字序列。 x_ns 变为循环的预期时间和循环的预期长度都与 sqrt(n) 成正比。

然而,由于 n=pq 其中 pq 互质中国剩余定理保证了 x (mod n) 的每个值唯一对应于值对 (x (mod p)), x (mod q))。此外,序列 x_ns 遵循完全相同的公式模 pq,即

x_(n+1)=[x_n (mod p)]^2+a (mod p)
(2)
x_(n+1)=[x_n (mod q)]^2+a (mod q).
(3)

因此,序列 (mod p) 将陷入长度约为 sqrt(p) 的短得多的循环。可以直接验证两个值 x_1x_2 具有相同的值 (mod p),通过计算

 GCD(|x_2-x_1|,n),
(4)

这等于 p

Pollard 方法的第二部分涉及检测序列已变为周期性的事实。Pollard 的建议是使用归因于 Floyd 的想法,即比较 x_ix_(2i) 对于所有 i。Brent 因子分解法中使用了不同的方法。

在最坏的情况下,Pollard rho 算法可能非常慢。


另请参阅

Brent 因子分解法, 素因数分解算法

使用 Wolfram|Alpha 探索

参考文献

Brent, R. "An Improved Monte Carlo Factorization Algorithm." Nordisk Tidskrift for Informationsbehandling (BIT) 20, 176-184, 1980.Brent, R. P. "Some Integer Factorization Algorithms Using Elliptic Curves." Austral. Comp. Sci. Comm. 8, 149-163, 1986.Bressoud, D. M. 因式分解与素性测试。 New York: Springer-Verlag, pp. 61-67, 1989.Eldershaw, C. and Brent, R. P. "Factorization of Large Integers on Some Vector and Parallel Computers."Montgomery, P. L. "Speeding the Pollard and Elliptic Curve Methods of Factorization." Math. Comput. 48, 243-264, 1987.Pollard, J. M. "A Monte Carlo Method for Factorization." Nordisk Tidskrift for Informationsbehandlung (BIT) 15, 331-334, 1975.Vardi, I. Computational Recreations in Mathematica. Reading, MA: Addison-Wesley, pp. 83 and 102-103, 1991.

在 Wolfram|Alpha 中被引用

Pollard rho 因子分解法

请这样引用

Weisstein, Eric W. “Pollard rho 因子分解法。” 来自 MathWorld--Wolfram Web 资源。 https://mathworld.net.cn/PollardRhoFactorizationMethod.html

主题分类