gpt4 book ai didi

c++ - 蒙特卡洛法计算圆周率

转载 作者:行者123 更新时间:2023-11-27 22:59:58 32 4
gpt4 key购买 nike

我正在尝试使用蒙特卡洛方法计算圆周率。但我总是得到零,我不知道为什么。这是我的代码

   #include <tchar.h>
#include <Windows.h>
#include <omp.h>
#include <iostream>
#include<math.h>
using namespace std;
int main(int argc, char *argv[]){

int N = 1000, n = 0;
double x = 0, y = 0;
double answer;

for (int i = 0; i < N; i++){
x = (double)rand() / (double)RAND_MAX;
y = (double)rand() / (double)RAND_MAX;

if (((x*x) + (y*y)) < 1)
++n;
}
//cout << "n = " <<n << endl;

answer = n / N;
cout << answer*4.0 << endl;

//system("pause");
}

最佳答案

answer 计算中的整数除法:

answer = n / N;

'nuff 说。

编辑 1:
今天是星期五,所以我将添加一些解释。

变量nN 声明为整数。

除法优先于任何转换或赋值。除法作为两个整数执行,然后截断小数部分。剩余的值转换为 double,然后分配给变量 answer

请不要区分标识符。 nN 应该是不同的字母。这有助于作者和审稿人避免拼写错误。

关于c++ - 蒙特卡洛法计算圆周率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28774897/

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