小编Pen*_*aby的帖子

使用C查找pi的蒙特卡洛方法

我编写了一个函数,该函数需要一个很长的long值n,并将其用作要经过的迭代次数。该函数应该可以很好地估计pi,但是,大的所有值都n趋向于3.000,而不是3.1415,所以我不确定发生了什么?

我做错了什么吗?

这是我的代码:

double estimate_pi(long long n){
    double randomx, randomy, equation, pi;
    long long i, incircle = 0;

    for(i = 0; i < n; i++){
        randomx = (double)(rand() % (1+1-0) + 0);
        randomy = (double)(rand() % (1+1-0) + 0);

        equation = randomx * randomx + randomy * randomy;

        if(equation <= 1){
            incircle++;
        }
    }

    pi = (long double)4 * (long double)incircle / (long double)n;

    return pi;
}
Run Code Online (Sandbox Code Playgroud)

在主函数中,打印pi的10个值:

int main(void){

    long long N;
    double pi_approx;
    int …
Run Code Online (Sandbox Code Playgroud)

c pi montecarlo

5
推荐指数
2
解决办法
169
查看次数

标签 统计

c ×1

montecarlo ×1

pi ×1