random.cpp

来自「这是一个利用遗传算法求解函数极值」· C++ 代码 · 共 37 行

CPP
37
字号
#include   "stdafx.h"
#include "Random.h"
#include <time.h>

const unsigned long m_maxshort=65536L;
const unsigned long m_multiplier=1194211693L;
const unsigned long m_adder=12345L;

//产生种子
void RandomNumber(unsigned long s)
{
	if(s==0)
		m_randSeed=time(0);  //由系统时间产生种子
	else
		m_randSeed=s;   //由用户提供种子
}

//产生0:n-1之间的随机整数
unsigned short Random(unsigned long n)
{
	m_randSeed=m_multiplier*m_randSeed+m_adder;
	return (unsigned short)((m_randSeed<<10/*16*/)%n);
}

//产生[0,1)之间的随机实数
double fRandom()
{
	//return Random(m_maxshort)/double(m_maxshort);
	unsigned short maxlong;
	maxlong=time(0);
	return Random(maxlong)/double(maxlong);
}

//在整个程序中,随机函数非常重要,他的正确性影响到了程序的最后结果。在修改程序过程中,程序的
//错误基本上都与随机函数有关。

⌨️ 快捷键说明

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