【发布时间】:2009-11-07 04:35:13
【问题描述】:
我需要一种算法,几乎可以将 unix 时间戳转换为适当的随机数,这样如果我“回放”时间戳,我就会得到相同的随机数。
这就是我所说的适当的意思:
- 大多数人不会在随机数中检测到循环或模式。
- 它不需要是加密安全的。
- 必须能够生成所有数字。 (我发现 LFSR 不这样做)
- 数字是 32 位整数
而且我希望它相当快。
到目前为止,我的想法是一遍又一遍地播种 PRNG,但我不确定这是否是处理此问题的最佳方法。
任何想法和想法将不胜感激。
谢谢。
【问题讨论】:
-
如果更改时间戳的顺序,是否希望以不同的顺序获得相同的随机数?例如。从 [(1, 5), (2, 3), (3,9)] 开始,其中一对中的第一个数字是时间戳,你想要 [(2,3), (3,9), (1,5)] 还是 [(2,7), (3,4), (1,6)]?
-
XKCD 来救援! - xkcd.com/221
-
好点outis,这可以区分散列和prng。
-
@outis,时间戳永远不会乱序播放,但无论如何我都会研究散列,因为它似乎是一个快速的解决方案。
标签: integer random sequence prng