⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 用数值积分计算派值.txt

📁 用数值积分计算派值 本程序采用现在比较常用的且复杂度叫小的 数值积分算法 有效的提高了程序的可读性
💻 TXT
字号:
#include<iostream>
#include<ctime>
#include<cmath>
using namespace std;
const unsigned long maxshort=65536l;
const unsigned long multipilier=1194211693l;
const unsigned long adder=12345l;
class RandomNumber{
private:
	unsigned long randSeed;
public:
	RandomNumber(unsigned long s=0);
	unsigned short Random(unsigned long n);
	double fRandom(void);
};
RandomNumber::RandomNumber(unsigned long s)
{
	if(s==0)
		randSeed=time(0);
	else
		randSeed;
}
unsigned short RandomNumber::Random(unsigned long n)
{
	randSeed=multipilier*randSeed+adder;
	return(unsigned short)((randSeed>>16)%n);
}
double RandomNumber::fRandom(void)
{
	return Random(maxshort)/double(maxshort);
}
double Darts(int n)
{
	static RandomNumber dart;
	int k=0;
	for(int i=0;i<=n;i++)
	{
		double x=dart.fRandom();
		double y=dart.fRandom();
		if(y<=sqrt(1-x*x))k++;
	}
	return k/double(n);
}
void main()
{
	double m=0;
	m=Darts(1);
	cout<<"派值为:"<<m<<endl;
}

⌨️ 快捷键说明

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