澄清isProbablePrime中的确定性因素

Del*_*unt 4 java rsa biginteger

我的问题是关于对中的"确定性"因素isProbablePrime()的方法BigInteger.Java API声明这是:

"衡量呼叫者愿意容忍的不确定性"

这是不确定性或其他因素的百分比.我需要2位素数的512位.

rge*_*man 13

Javadocs BigIntegerisProbablePrime方法:

确定性 - 调用者愿意容忍的不确定性的度量:如果调用返回true,则此BigInteger为素数的概率超过(1 - 1/2 确定性)

因此,certainty你通过的数字越高,你就越可以确定,即100意味着它的概率为1 - (1/2)100,非常接近1.

Java通过执行Miller-Rabin素数测试来实现这一点,测试的数量基于certainty(以及Lucas-Lehmer测试).

  • 供参考:如果`确定性'是10,那么`1 - 1/2 ^ 10`约为99.9%. (5认同)
  • @pippilongstocking 该文档指定“确定性”可以是任何整数。听起来您可能会将其与“compareTo”的结果混合在一起,尽管实际上并不需要为 0、1 或 -1。 (2认同)