randomnumber.h

来自「用C++实现银行的模拟」· C头文件 代码 · 共 34 行

H
34
字号
#include<time.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<=value<=n-1的随机整数
	unsigned short Random(unsigned long n);
	//产生0<=value<=1.0的随机实数
	double fRandom(void);
};
RandomNumber::RandomNumber(unsigned long s)
{
	if(s==0)
		randSeed=time(0);//用系统时间作种子
	else
		randSeed=s;//用手提供种子
}
unsigned short RandomNumber::Random(unsigned long n)
{
	randSeed=multiplier * randSeed+adder;
	return (unsigned short)((randSeed>>16)%n);
}
double RandomNumber::fRandom(void)
{
	return Random(maxshort)/double(maxshort);
}

⌨️ 快捷键说明

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