您如何使用golang';很可能是次贷?
我的尝试总是失败:( 有人能告诉我我做错了什么吗?您如何使用golang';很可能是次贷?,go,primes,Go,Primes,我的尝试总是失败:( 有人能告诉我我做错了什么吗?x.ProbablyPrime(n)检查x是否为素数,而不是nn是一个指示probalyprime将如何努力确定x的素数的因素。越高的n越长的probalyprime越可能是正确的。具体而言,从以下方面: 如果返回true,则x是概率为1-1/4^n的素数 所以你想要的是: x := big.NewInt(2) fmt.Println(x.ProbablyPrime(4)) 在运动场上运行它。如方法文档中所述: ProbablyPrime执行n
x.ProbablyPrime(n)
检查x
是否为素数,而不是n
n
是一个指示probalyprime
将如何努力确定x
的素数的因素。越高的n
越长的probalyprime
越可能是正确的。具体而言,从以下方面:
如果返回true,则x是概率为1-1/4^n的素数
所以你想要的是:
x := big.NewInt(2)
fmt.Println(x.ProbablyPrime(4))
在运动场上运行它。如方法文档中所述: ProbablyPrime执行n Miller-Rabin测试以检查x是否为 素数。如果返回true,则x是素数,概率为1-1/4^n。如果 它返回false,x不是素数 n、 传递给该方法的参数不是您试图测试素数的数量,而是确定进行素数猜测的准确性:n值越高,猜测越准确,但需要额外计算 如果要测试2是否为素数,可以执行()操作:
“x是素数,概率为1-1/4^n”这句话对我来说毫无意义。要么x是素数,要么它不是素数,都不涉及随机性。相反,算法的输出是随机的,因此类似“如果x不是素数,[函数]返回false,概率至少为1-1/4^n”的语句更有意义。我不同意。假设函数返回true,x为素数的概率为1-1/4^n。如果我们对这个世界所知的只是
x.ProbablyPrime(n)
返回true,那么我们知道x是素数的概率是1-1/4^n。当然,我们可以了解更多关于x的信息,并对其素数更加确定,但只需要知道x的输出。ProbablyPrime(n)
,这是我们能做的最好的了。我想你希望n
比1大得多?对于n=1,你仍然会错过3/4的非素数。(这只影响大数,小素数在算法中是特例。)我建议写isPrime:=I.ProbablyPrime(10)
左右。
x := big.NewInt(2)
fmt.Println(x.ProbablyPrime(4))
package main
import (
"fmt"
"math/big"
)
func main() {
i := big.NewInt(2)
isPrime := i.ProbablyPrime(1)
fmt.Println(isPrime)
}