|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
xdm,为啥我用蒙特卡洛算法计算pi的值在VScode和DEV中的运算结果不同啊???- #include<stdio.h>
- #include<stdlib.h>
- #include<time.h>
- #include<math.h>
- int main()
- {
- float x,y,pi;
- long long i,D=0,C=0;
- srand((unsigned)time(NULL));
- for(i=0;i<100000000;i++)
- {
- C++;
- x=(float)rand()/RAND_MAX;
- y=(float)rand()/RAND_MAX;
- if(sqrt(x*x+y*y)<=1)
- D++;
- }
- pi=4.0*(float)D/C;
- printf("pi的值是%f\n",pi);
- return 0;
- }
复制代码
本帖最后由 jackz007 于 2020-12-28 10:38 编辑
楼主的代码稍作改动,使用的也是 gcc(和楼主的编译器相同),无论怎么运行也不会是 4. 多啊
- #include<stdio.h>
- #include<stdlib.h>
- #include<time.h>
- int main()
- {
- double x , y , pi ;
- unsigned long long D , C ;
- srand((unsigned) time(NULL)) ;
- for(C = D = 0 ; C < 100000000 ; C ++) {
- x = rand() / (double)RAND_MAX ;
- y = rand() / (double)RAND_MAX ;
- if(x * x + y * y <= 1) D ++ ;
- }
- pi = 4.0 * D / C ;
- printf("pi 的值是 %lf\n" , pi) ;
- }
复制代码
编译、运行实况
- D:\0002.Exercise\C>g++ -o pi pi.c
- D:\0002.Exercise\C>pi
- pi 的值是 3.141310
- D:\0002.Exercise\C>pi
- pi 的值是 3.141593
- D:\0002.Exercise\C>pi
- pi 的值是 3.141441
- D:\0002.Exercise\C>
复制代码
|
-
-
|