【问题标题】:Miller Rabin primality test two types?米勒拉宾素性检验两种类型?
【发布时间】:2017-04-24 05:22:25
【问题描述】:

我突然遇到了两种米勒拉宾素数测试方法。 一个是uses randoms,另一个是does not use randoms

第二个内部是否有隐藏的随机生成或什么?谢谢。

【问题讨论】:

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

标签: algorithm primality-test


【解决方案1】:

第二个是 Miller-Rabin 素性检验的deterministic variant。不是使用从随机数生成的“见证”数,而是使用已知足够的素数列表:

当要测试的数量 n 很小时,没有必要尝试所有 a

如果 n

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

【讨论】:

  • 非常感谢
猜你喜欢
  • 1970-01-01
  • 2014-07-28
  • 2011-12-02
  • 1970-01-01
  • 1970-01-01
  • 2018-11-05
  • 2011-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多