这是一个用随机数计算圆周率大小的程序,但是计算的结果总是3.2几,而且当我想增大某些数来使结果更加精确时,结果突然就输出4了
希望能帮我解答以下疑惑:
1)为什么算出来的数不精确
2)为什么想把某些数改大一些(没有overflow)结果就变成4了(就孤零零输出了4,小数点都没有)
3)有时候改数,输出就不见了,想问问为什么
谢谢
//because a circle is a little bit complicated, I decided to us a quarter circle to calculate the value of PI.
#include<ctime>
#include<cstdlib>
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
//srand=(time(0));//why this can not success?
srand((unsigned int)time(NULL));
unsigned int a=0, b=0;//a and b are the coordinates of a single point
unsigned int r=60000;//the radius of the circle
int n=0;//the number of the points that lie in the circle
double c=0;
int i=0;
for(i=0;i<=10000000;i++)
{
a=rand()%60001;
b=rand()%60001;//produce two random numbers from 0 to 10000
c=sqrt((pow(a,2)+pow(b,2)));
if (c<=r)
{
n=n+1;
}
}
double v=0;
v=n/10000001.0;
cout<<v*4<<endl;
return 0;
}