获得N个准随机数比使用N个rand()调用更多的CPU /时间效率方法?

时间:2012-04-08 18:13:59

标签: algorithm random

这是有效获得准随机数的another question的延续。

我需要获得N个独特的准随机数,偏差/分配质量没什么大不了的。与使用R调用rand()或/ dev / random等相比,我可以获得更多CPU /时间效率吗?也许在一些随机数或类似的东西上使用一些数学/按位操作。或者使用预先计算的表格或......

N可以很大,比如10000或1000000。

感谢。

1 个答案:

答案 0 :(得分:0)

我发现了类似here的内容:

m_w = <choose-initializer>;    /* must not be zero */
m_z = <choose-initializer>;    /* must not be zero */

uint get_random()
{
    m_z = 36969 * (m_z & 65535) + (m_z >> 16);
    m_w = 18000 * (m_w & 65535) + (m_w >> 16);
    return (m_z << 16) + m_w;  /* 32-bit result */
}