没有RTC的机器如何生成伪随机数?

时间:2012-05-18 21:19:12

标签: language-agnostic random

我总是想知道像NES这样的老式游戏机如何能够生成随机数而没有像时间一样的种子(NULL);

由于

1 个答案:

答案 0 :(得分:2)

您可以使用后续关键点,操纵杆移动或任何类似的人类原始交互之间的时间来实现。如果您可以将事件计时,例如以微秒为单位,并以模数100为单位,则以合理的种子结束。如果需要,你也可以多次这样做以获得足够的比特来创建足够大的(即64比特)种子。

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

- GA