1. 程式人生 > 其它 >C語言隨機法計算圓周率近似值

C語言隨機法計算圓周率近似值

技術標籤:演算法

C語言隨機法計算圓周率近似值

由於使用隨機法,因此每次結果都是不同的。原理就是隨機生成數字並通過計算位於圓(XX+YY<1)內的概率估算。其中巨集的引數(ALL和RAND_MAX)對於精確度非常關鍵。
在這裡插入圖片描述
在這裡插入圖片描述

#include<time.h>
#include<stdio.h>
#include<stdlib.h>
#define ALL 100000
int main ()
{
	srand(time(0));
	double X[ALL],Y[ALL];
	int inround=0,index;
	for(index=0;index<
ALL;index++) { X[index]=(double)rand()/(double)RAND_MAX; Y[index]=(double)rand()/(double)RAND_MAX; if(X[index]*X[index]+Y[index]*Y[index]<=1) inround++; /* printf("%lf %lf\n",X[index],Y[index]); */ } //計算平均數一定程度上檢驗生成的隨機數是否合理// for(index=1;index<ALL;index++) { X[0]+=X[index]
; Y[0]+=Y[index]; } printf("\n%lf %lf",X[0]/ALL,Y[0]/ALL);//越接近0.5越合理// printf("\n圓周率近似= %lf\n",4*(double)inround/(double)ALL); return 0; }