-1

我正在寻找如何生成随机数的令人满意的解决方案。

我看着这个这个这个这个。但我正在寻找别的东西。

大多数帖子都提到使用 R[n+1] = (a *R[n-1 + b) %n、这个伪随机函数或其他一些数学函数。

但奇怪的是,我不是在寻找这些;我想要一些非算法的答案。准确地说,一个“面试”的答案。一些容易理解的东西,而不是让面试官觉得我抄袭了一个方法:)。

4

2 回答 2

1

对于面试问题,一个常见的答案可能是查看击键之间的间隔(要求用户键入内容)、磁盘寻道时间或来自断开源的输入——这将为您提供来自 MIC 插座或其他任何东西的热电子.

LavaRnd使用带镜头盖的数码相机,这是最后一个版本。

一些操作系统允许间接访问这些随机输入中的一些,通常是通过一个安全的随机函数;比通常的 RNG 更慢但更安全。

根据面试的工作,您可以谈论测试原始数据以检查熵,并通过使用像 SHA-256 这样的加密哈希函数来集中熵。

还有专门的、昂贵的硬件卡,它们使用各种量子效应来生成真正的随机数。

于 2013-06-07T12:21:32.027 回答
0

取系统时间,加一个种子,取模上限。如果上限小于0,则将其乘以-1,然后结果减去最大值...不是很强但符合您的要求?

如果你有一个 UI 并且只需要几个随机数,可以要求用户移动鼠标,输入几个种子,输入几个单词并将它们用作种子

于 2013-06-06T19:06:08.287 回答