2012-05-18 71 views
1

我总是在想一些老的游戏机,如NES如何能够像没有时间种子(NULL)来产生随机数;没有RTC的机器如何生成伪随机数?

感谢

+1

页:http://tasvideos.org/RandomGenerators.html介绍几个NES游戏的随机数生成器的实现。 –

回答

2

你可以做,用后续的关键presseses,操纵手柄的移动或任何类似人类之间的时间起源互动。如果你能以微秒为单位计时事件,并以100为模数,则以合理的种子结束。如果需要,您也可以多次执行此操作以获取足够的位以创建足够大(即64位)的种子。

在可以不依赖于人的交互对种子一些其它系统中,复位电路使用RC电路,而且元件的差异,将使这个时间的每个系统上略有不同。外部(独立于CPU的计数器)可在启动时启动,然后由CPU读取。如果计数器具有足够的相对于复位电路时间常数的分辨率,则最后一位可以用作种子。很久以前,网络设备使用这种技术在以太网时代之前生成MAC等效地址。

--ga