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

📄 随即数.cpp

📁 编制随机数生成程序
💻 CPP
字号:
// 随即数.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include<time.h>
#include<iostream.h>
//随机数类
const unsigned long maxshort=65536L;
const unsigned long multiplier=1194211693L;
const unsigned long adder=12345L;
class RandomNumber
{private:
  //当前种子
 unsigned long randSeed;
public:
	//构造函数,缺省值0表示由系统自动产生种子
RandomNumber(unsigned long s=0);
   //产生0:n-1之间的随机整数
unsigned short Random(unsigned long n);
   //产生[0,1)之间的随机实数 
double fRandom(void);
};
//产生种子
RandomNumber::RandomNumber(unsigned long s)
{if(s==0)
  randSeed=time(0);//用系统时间产生种子
else
   randSeed=s;//由用户提供种子
}
//产生0:n-1之间的随机整数
unsigned short RandomNumber::Random(unsigned long n)
{randSeed=multiplier*randSeed+adder;
 return(unsigned short)((randSeed>>16)%n);
}
//产生[0,1)之间的随机实数
double RandomNumber::fRandom(void)
{
	return Random(maxshort)/double(maxshort);
}
double f(double x)
{
	double s=x*x;
return s;}
double Darts(int n)
{//用随即投点方法计算pai的值
	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);
}
double Darts1(int n)
{//用随机投点法计算定积分
static RandomNumber dart;
int k=0;
for(int i=1;i<=n;i++)
	{double x=dart.fRandom();
	 double y=dart.fRandom();
	 if(y<=f(x)) k++;
}
return k/double(n);
}


main()
{int n;
double a;
for(int i=0;i<=3;i++)
{cin>>n;
 a=Darts1(n);
 cout<<"a="<<a<<endl;
}
}

⌨️ 快捷键说明

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