对于此函数,计算最多的woodall数 n = 64
并且该算法用于伍德尔为W ñ = N⋅2 Ñ - 1
for (int n = 1; n <= 64; ++n)
{
a[n - 1] = (n * (exp2(n))) - 1;
}
Run Code Online (Sandbox Code Playgroud)
但是在n大于47之后,结果是错误的,因为它似乎忘记- 1了结果n * (exp2(n)).
如果我cout是值via,那么输出是什么
std::cout << i << ":\t" << std::setprecision(32) << a[i - 1] << std::endl;
......之前是正确的
n
45: 1583296743997439
46: 3236962232172543
47: 6614661952700415
48: 13510798882111488
49: 27584547717644288
50: 56294995342131200
Run Code Online (Sandbox Code Playgroud)
......之后是不正确的
for a[]是一个unsigned long int
如果我将- 1 …