我正在寻找一种如何生成随机数的令人满意的解决方案。
我查看了this,this,this和this。 但我正在寻找别的东西。
大多数帖子提到使用,R [n + 1] =(a * R [n-1 + b)%n,这个伪随机函数,或其他一些数学函数。
但奇怪的是我不是在寻找这些;我想要一些非算法的答案。准确地说,是一个“采访”的答案。容易理解的东西,不是让面试官觉得我抢了一个方法:)。
答案 0 :(得分:1)
对于面试问题,一个常见的答案可能是查看按键之间的间隔(要求用户输入内容),光盘寻道时间或来自断开连接源的输入 - 这将为您提供来自MIC内部的热电子插座或其他什么。
LavaRnd使用带有镜头盖的数码相机,这是最后一个版本。
某些操作系统允许间接访问某些随机输入,通常是通过安全随机函数;比通常的RNG更慢但更安全。
根据面试的工作,您可以讨论测试原始数据以检查熵,并使用SHA-256等加密哈希函数来集中熵。
还有专门的,昂贵的硬件卡,它们使用各种量子效应来生成真正的随机数。
答案 1 :(得分:0)
取系统时间,添加种子,模数上限。如果上限小于0而不是乘以-1然后结果减去最大...不是很强但是满足你的要求?
如果你有一个用户界面,只需要几个随机可以要求用户移动鼠标,输入一些种子,输入几个单词并将它们用作种子