首页 > 其他 > 详细

编程117

时间:2021-09-06 03:04:10      阅读:8      评论:0      收藏:0      [点我收藏+]

1. 用蒙特卡洛方法计算PI

#include <stdio.h>
#include <math.h>
#include <time.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
        int tosses, cir_nb, i;
        double dub_x, dub_y, dub_r;

        srand(time(NULL));
        while (1) {
                cir_nb = 0;
                printf("Enter the number of tosses (2 < N <= 1000000) \n");
                scanf("%d", &tosses);
                if (tosses < 2 || tosses > 1000000)
                        continue;
                for (i = 0; i < tosses; i++) {  // 投掷 tosses 次
                        dub_x = (double)random()/RAND_MAX;
                        dub_y = (double)random()/RAND_MAX;
                        dub_r = sqrt(dub_x * dub_x + dub_y * dub_y);    // 计算随机点是否落在圆内
                        if (dub_r <= 1) {
                                cir_nb++;
                        }
                }
                double pi = 4 * (double)cir_nb / tosses;        // 因为 随机点落在圆和正方形的概率 和 面积等比
                printf("PI : %f\n", pi);
        }
        return 0;
}

编程117

原文:https://www.cnblogs.com/yangxinrui/p/15228663.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!