#include <stdio.h>
#include <stdlib.h>
#include <time.h>
double distance(double x,double y);
int main()
{
int i,j,count=0;
double x,y,r=1;
srand(time(NULL));
for(j=100;;j+=j)
{
for(i=0;i<j;i++)
{
x=(double)rand()/(double)RAND_MAX;
y=(double)rand()/(double)RAND_MAX;
if(distance(x,y,r)<(r*r))
count++;
}
printf("파이값 : %lf \n",4*count/(j*r*r));
}
}
double distance(double x,double y,double r)
{
double result=((x-r)*(x-r)+(y-r)*(y-r));
return result;
3.14에 가까워져야하는데 2배인 6.28에가까워지네요...
거리계산식을 다시 한번 잘보길바람. 연산자 우선순위가 흔히 아는 사칙계산법과는 다름.