ranrotw.cpp
来自「random number generator,随机数产生器」· C++ 代码 · 共 22 行
CPP
22 行
/************************* RANROTW.CPP ****************** AgF 1999-03-03 *
* Random Number generator 'RANROT' type W *
* This version is used when a resolution higher that 32 bits is desired.*
* *
* This is a lagged-Fibonacci type of random number generator with *
* rotation of bits. The algorithm is: *
* Z[n] = (Y[n-j] + (Y[n-k] rotl r1)) modulo 2^(b/2) *
* Y[n] = (Z[n-j] + (Z[n-k] rotl r2)) modulo 2^(b/2) *
* X[n] = Y[n] + Z[n]*2^(b/2) *
* *
* The last k values of Y and Z are stored in a circular buffer named *
* randbuffer. *
* The code includes a self-test facility which will detect any *
* repetition of previous states. *
* The function uses a fast method for conversion to floating point. *
* This method relies on floating point numbers being stored in the *
* standard 64-bit IEEE format or the 80-bit long double format. *
* *
* The theory of the RANROT type of generators and the reason for the *
* self-test are described at www.agner.org/random/theory *
* *
*
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?