这是有效获得准随机数的another question的延续。
我需要获得N个独特的准随机数,偏差/分配质量没什么大不了的。与使用R调用rand()或/ dev / random等相比,我可以获得更多CPU /时间效率吗?也许在一些随机数或类似的东西上使用一些数学/按位操作。或者使用预先计算的表格或......
N可以很大,比如10000或1000000。
感谢。
答案 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 */
}