随机数生成

  • METHOD1: 线性同余法

    • 选取种子x0x_0

    • 选取m,a,cm,a,c,使得2a<m,0c<m,0x0m2\leq a<m,0\leq c<m,0\leq x_0\leq m

    • xn+1axn+c(modm)x_{n+1}\equiv a\cdot x_n+c\left(\mod m\right)

  • METHOD2: 纯乘法同余法

    • 选取素数mm(通常为梅森素数M31=2311M_{31}=2^{31}-1),aa取其原根,最大周期长度为m1m-1

    • xn+1axn(modm)x_{n+1}\equiv a\cdot x_n\left(\mod m\right)

  • METHOD3: 平方伪随机

    • xn+1xn2+1(modm)x_{n+1}\equiv x_{n}^{2}+1\left(\mod m\right)

最后更新于

这有帮助吗?