Algorithm Miller-Rabin素性测试有两种类型?

Algorithm Miller-Rabin素性测试有两种类型?,algorithm,primality-test,Algorithm,Primality Test,我突然遇到了两种Miller-Rabin素性测试方法。 一个接一个 第二代内存在隐藏的随机生成还是什么?谢谢。第二个是米勒-拉宾素性测试的一部分。代替使用随机数生成的“见证”数,而是使用已知足够的素数列表: 当要测试的数量n很小时,不需要尝试所有a

我突然遇到了两种Miller-Rabin素性测试方法。 一个接一个

第二代内存在隐藏的随机生成还是什么?谢谢。

第二个是米勒-拉宾素性测试的一部分。代替使用随机数生成的“见证”数,而是使用已知足够的素数列表:

当要测试的数量n很小时,不需要尝试所有a<2(ln n)2,因为已知更小的潜在证人组就足够了。”

如果n<382512356546413051,则测试a=2、3、5、7、11、13、17、19和23就足够了


这是链接源代码中
alist
中的素数列表。

非常感谢。通过对两者的简单比较,可以得出概率算法要快得多,我可以理解为什么确定性算法不太流行。确定性M-R测试不太受欢迎,主要是因为人们不知道它。特别是通过使用更多的优化集,它们为所有64位输入提供了非常有效的确定性答案,与使用这种大小的概率测试获得可靠结果相比,所需的测试更少。因此,在实践中它实际上更快(除非您不关心正确的结果).是的..我在这里做了一项比较确定性MR和平方根边界法的研究。我发现,正如你所说,det MR对于大输入来说要好得多,对于10^12以下的值来说效率不高。这将在很大程度上取决于你的实现。对于我的代码,crossover与mod-30 wheel试用除法的比较是500000,但是我在C中,t使用单基哈希解决方案进行32位输入,asm mulmod速度更快。什么是单基哈希解决方案?非常感谢