c_cpp 【随机化算法】计算π值【7.2.1】

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 【随机化算法】计算π值【7.2.1】相关的知识,希望对你有一定的参考价值。

//随机化算法 用随机投点法计算π值
#include "stdafx.h"
#include "RandomNumber.h"
#include <iostream>
using namespace std;
 
double Darts(int n);
 
int main()
{
	int n1 = 100,n2 = 1000,n3 = 1000,n4 = 10000,n5 = 10000000;
	cout<<"n1="<<n1<<",π1="<<Darts(n1)<<endl;
	cout<<"n2="<<n2<<",π2="<<Darts(n2)<<endl;
	cout<<"n3="<<n3<<",π3="<<Darts(n3)<<endl;
	cout<<"n4="<<n4<<",π4="<<Darts(n4)<<endl;
	cout<<"n5="<<n5<<",π5="<<Darts(n5)<<endl;
	return 0;
}
 
//用随机投点法计算π值
double Darts(int n)
{
	static RandomNumber dart;
	int k = 0;
 
	for(int i=1; i<=n; i++)
	{
		double x = dart.fRandom();
		double y = dart.fRandom();
		if((x*x + y*y)<=1)
		{
			k++;
		}
	}
 
	return 4*k/double(n);
}

以上是关于c_cpp 【随机化算法】计算π值【7.2.1】的主要内容,如果未能解决你的问题,请参考以下文章

随机化算法概述

c_cpp 【随机化算法】计算定积分【7.2.2】

蒙特卡洛(Monte Carlo)方法计算π

蒙特卡洛(Monte Carlo)方法计算π

c_cpp 【随机化算法】随机数【7.1】

c_cpp 【随机化算法】跳跃表【7.3.3】舍伍德(舍伍德)算法