// モンテカルロ法で円周率を求める
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	double x, y, pi;
	int n, i, count;
	
	// nを100,1000,10000,100000,100000で試す
	for(n = 100; n <= 1000000; n = n * 10){
		count = 0;
		for(i = 0; i < n; i++){
			// 0~1の間の乱数を求める
			// (RAND_MAX+1)が乱数の最大値なので
			// 乱数をこれで割れば0.0~1.0の乱数が求まる
			// 1.0としているのは整数同士だと切り捨てになるので
			// 割る数を実数にするため
			x = rand() / (RAND_MAX + 1.0);
			y = rand() / (RAND_MAX + 1.0);
			if(x * x + y * y <= 1.0){
				count++;
			}
		}
		// 円周率を求める
		pi = (double)4 * count / n;
		printf("%7d個の点を打ったとき、%6d個が円の中に入り、円周率は%fとなった\n", n, count, pi);
	}
	
	return 0;
}