main.cpp

来自「用概率算法计算π的值」· C++ 代码 · 共 57 行

CPP
57
字号

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

double Func(double x){
	return sqrt(1-x*x);
}

double uniform(double a,double b){
   
	if(a >= b){
		printf("Can't get a random\n");
	    exit(0);
	}

	double random = rand()*1.0/RAND_MAX;
	printf("random=%f\n",random);	
	return random;
}


double Calculate(long n){

	long k = 0;
	double x,y;

    for(long i=0;i<n;i++){
		x = uniform(0,1);
		y = uniform(0,1);
		x = Func(x);
		if(y <= x) k++;
	}

	return 4.0*k/n;
}


int main(){

	long n;
	double pai;

	printf("Input N:");
	scanf("%ld",&n);


    srand((unsigned)time(NULL));   

	pai = Calculate(n);

	printf("Pai = %f\n",pai);

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?