C语言程序:用蒙特卡罗法计算直径为1的圆面积.
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/12 01:17:25
C语言程序:用蒙特卡罗法计算直径为1的圆面积.
#include
#include
#include
#include
main(){
\x05int n,i=1,k=1;
float x,y;
\x05srand(time(0));
\x05printf("Input n=");
\x05scanf("%d",&n);
\x05while(i
#include
#include
#include
#include
main(){
\x05int n,i=1,k=1;
float x,y;
\x05srand(time(0));
\x05printf("Input n=");
\x05scanf("%d",&n);
\x05while(i
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
main(){
int n,i=1,k=1;
float x,y;
srand(time(0));
printf("Input n=");
scanf("%d",&n);
while(i<=n){
x=rand()%32767/32767.0;
y=rand()%32767/32767.0;
if(x*x+y*y<=0.25)
k++;
i++;
}
printf("S=%d/%d=%f\n",k,n,1.0*k/n*4);
getch();
}
你的随机x,y都是整数
但是你的圆是一个包含4个象限的,你只计算了第一象限
还有x=rand()/32767.0;这个有问题,x可能大于1
再问: 是啊是啊!!!!!!!!!!!!!!!!!!太棒了!!!!
再答: 采纳吧!
#include<conio.h>
#include<stdlib.h>
#include<time.h>
main(){
int n,i=1,k=1;
float x,y;
srand(time(0));
printf("Input n=");
scanf("%d",&n);
while(i<=n){
x=rand()%32767/32767.0;
y=rand()%32767/32767.0;
if(x*x+y*y<=0.25)
k++;
i++;
}
printf("S=%d/%d=%f\n",k,n,1.0*k/n*4);
getch();
}
你的随机x,y都是整数
但是你的圆是一个包含4个象限的,你只计算了第一象限
还有x=rand()/32767.0;这个有问题,x可能大于1
再问: 是啊是啊!!!!!!!!!!!!!!!!!!太棒了!!!!
再答: 采纳吧!