是否有任何可以寻找的确切随机发生器(例如,第1000个数字总是X,具有O(1)存储和性能)?
var x = new RNG(99); // seed
var y = x.at(10004); // always return same value, eg. 0.34
什么是算法或函数/公式名称?任何语言都没问题。
我假设您不需要任何PRNG,只要使用种子和索引号确定性地生成数字。 此外,如果没有实际计算,输出数字很难猜测。
HMAC足以满足您的要求。
H(K XOR opad, H(K XOR ipad, text))
K
= key(index)
text
=消息(种子)
H
=加密哈希函数
ipad
=用H
填充的0x36
块字节长度的字节
opad
=用H
填充的0x5C
块字节长度的字节
或许你甚至可以做到
H(seed,index) //like Sha256(seed + index)
使用mod调整输出范围