C言語なら俺に聞け(入門編)Part 110

このエントリーをはてなブックマークに追加
171デフォルトの名無しさん
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
int i,ii,n=100000;
double x,y,z,sum=0.0,zsum=0.0,ans;
double za[100000]={0};
srand((unsigned int)time(0));
for(i=0;i<n;i++){
x=-1.+2.0*(rand()/((double)RAND_MAX+1.0f)); // -1 <= x <= 1
y=-1.+2.0*(rand()/((double)RAND_MAX+1.0f)); // -1 <= y <= 1
z=2.0*(rand()/((double)RAND_MAX+1.0f));
for(ii=0;ii<2000;ii++){
if(0.001*ii<=z && z<0.001*(ii+1)){
if(x*x+y*y<=1.0-(0.0005*ii)){
sum=sum+1.0;
za[ii]=z;
}
}
}
}
for(i=0;i<100000;i++){
zsum=zsum+za[i];
}
ans=zsum/sum;
printf("%f %f %f\n",sum,zsum,ans);
return 0;
}
正しい値が出てきません お願いします