fig10_54.cpp
来自「经典书籍源代码啊。。。第三版。。。数据结构与算法分析——C++描述(第3版).」· C++ 代码 · 共 43 行
CPP
43 行
static const int A = 48271;
static const int M = 2147483647;
class Random
{
public:
explicit Random( int initialValue = 1 );
int randomInt( );
double random0_1( );
int randomInt( int low, int high );
private:
int state;
};
/**
* Construct with initialValue for the state.
*/
Random::Random( int initialValue )
{
if( initialValue < 0 )
initialValue += M;
state = initialValue;
if( state == 0 )
state = 1;
}
/**
* Return a pseudorandom int, and change the
* internal state. DOES NOT WORK CORRECTLY.
* Correct implementation is in Figure 10.55.
*/
int Random::randomInt( )
{
return state = ( A * state ) % M;
}
/**
* Return a pseudorandom double in the open range 0..1
* and change the internal state.
*/
double Random::random0_1( )
{
return (double) randomInt( ) / M;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?