-2

我必须根据当前的随机生成标准编写一个算法。我的意思是,我必须选择一个现有的并结合各种因素(可能是通过学习现有事实)。那么开始阅读随机生成器的最佳位置是什么。我知道 Wiki,但为了有一个有限的起点,我必须阅读一些文章或论文。此外,我需要一个快速的开始。目前现有的随机生成器有哪些,它们考虑了哪些因素?把事实强加给它有多可行?

4

2 回答 2

2

如果您不知道自己在做什么(您的问题听起来不像是 L'Ecuyer 或 Marsaglia 之类的人),请远离修改或组合 PRNG。你更有可能损害发电机的质量而不是改善它。

如果您谈论的是密码学 PRNG,这个建议甚至更有效。

于 2012-04-11T08:14:55.090 回答
1

当前算法不生成随机数。它们生成随机数。这不是一回事。

随机数通常可以使用某种硬件从自然界中获得。例如,如果您从经过调谐以接收大气噪声的 FM 调谐器读取声级,则数字将是非常随机的。这种生成器的示例是random.org。您还可以实现掷骰子或掷硬币的机器人或类似的东西。在 linux 上,您可以使用 /dev/random 来使用用户生成随机事件。

为了确定随机数生成器是否产生可用于加密的高质量随机性,PRNG 生成的数据应通过诸如此类的 prng测试。这并不容易,许多 PRNG 都惨遭失败。产生相对高质量的随机数同时又易于实现的算法之一是XorShift。然而,简单的实现并不意味着很容易理解这个特定生成器背后的逻辑。

此外,我需要一个快速的开始。

与每个主题一样,快速入门将是访问维基百科并开始阅读该主题的所有参考资料,或者谷歌搜索。到目前为止,您似乎还没有尝试这样做。

我知道维基

不,你没有。如果您“了解 wiki”,您就会知道每篇文章的末尾都有用于撰写文章的来源列表。阅读来源。

于 2012-04-11T08:30:17.327 回答