gpt4 book ai didi

Pi 的 C++ Chudnovsky 公式

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:16:18 24 4
gpt4 key购买 nike

我正在尝试让 C++ 应用程序为我计算圆周率。我曾尝试实现 Chudnovsky 公式,但没有成功。

这是我的代码:

#include <iostream>
#include <cmath>

long fac(long num) {
if (num == 1)
return 1;
return fac(num - 1) * num;
}

int main() {
using namespace std;
double pi;
for (long k = 0; k < 10; k++) {
pi += (pow(-1, k) * fac(6 * k) * (13591409 + (545140134 * k))) / (fac(3 * k) * pow(fac(k), 3) * pow(640320, 3 * k + 3/2));
}
pi *= 12;
cout << 1 / pi << endl;
system("pause");
return 0;
}

这样做的目的是让程序输出 Chudnovsky 公式的 10 次迭代。相反,我得到了这个:

call of overloaded `pow(int, long int&)' is ambiguous 

最佳答案

您从未初始化 pi,因此您的代码具有未定义的行为。

您的 fac 函数没有正确处理 0(fac(0) 应该是 1)。

3/2 的计算结果为 1(因为它使用整数除法,会截断),这会使您的公式计算出完全错误的答案。

关于Pi 的 C++ Chudnovsky 公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12028313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com