Ruby中可重复的随机性

Gar*_*eth 5 ruby random srand

我知道我可以rand通过调用srand种子"重新启动"我的调用,但这肯定会影响rand其他库方法的未来调用,包括加密方法?

如何在某些地方重复我的随机性并仍然确保我的其余代码不受影响?

pax*_*blo 0

好吧,您可以实现自己PRNG,而不使用系统版本。有大量关于如何做到这一点的文献,从最简单的线性同余梅森扭曲器

事实上,由于 Ruby 是开源的,您实际上可以偷看(请参阅random.c参考资料)它如何处理随机数,并使用与系统版本无关的信息重新实现它。