📄 randomgen250.cpp
字号:
#include "RandomGen250.h"
#define AMOL .23283064365386962890625e-9
#define NBIT 32
CRandomGen250::CRandomGen250(void)
{
for( int i = 0; i < 256; i++ )
m_ir[i] = i;
m_k = 0;
m_iran_ks = 0;
}
CRandomGen250::~CRandomGen250(void)
{
}
double CRandomGen250::GetRandom(void)
{
m_k = ( m_k + 1 ) & 255;
m_ir[ m_k ] = m_ir[ ( ( m_k - 250 ) & 255 ) ] ^ m_ir[ ( ( m_k - 103 ) & 255 ) ];
m_iran_ks = m_ir[ m_k ];
return ( m_iran_ks * AMOL + 0.5 );
}
void CRandomGen250::SetRandomSeed( int iSeed )
{
int ibm, idum, i;
ibm = 2 * iSeed + 1;
for( m_k = 0; m_k < 256; m_k++ )
{
idum = 0;
for( i = 1; i <= NBIT; i++ )
{
idum = idum * 2;
ibm = ibm * 16807;
if( ibm < 0 )
idum++;
}
m_ir[ m_k ] = idum;
}
m_k = 0;
for( i = 0; i < 100000; i++ )
this->GetRandom();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -