跨平台跨语言跨一切实际确定性随机数生成器 [英] Cross-platform cross-language cross-everything actually deterministic random number generator

查看:17
本文介绍了跨平台跨语言跨一切实际确定性随机数生成器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找一种算法来从给定的种子生成随机数,但有一个特殊要求,即无论底层计算机架构或语言实现如何,它都将始终生成相同的数字序列.

I'm looking for an algorithm to generate random numbers from a given seed but with the particular requirement that it will always generate the same sequence of number regardless of the underlying computer architecture or language implementation.

我已经知道 Mersenne Twister,但是,当使用不同的实现(即 C MT 与 Javascript MT)时,它生成的数字会有所不同.

I already know of Mersenne Twister, however, the numbers it generates differ when using different implementations (i.e. C MT vs Javascript MT).

是否存在具有此属性的算法?此外,我不需要最先进的 RNG,我什至不需要它的加密安全,我只想在一个地方驱动一个随机"模拟并让它遵循相同的行为不同的实现.

Do algorithms with this property exist? Also, I don't need a state-of-the-art RNG, I don't even need it to be cryptographically secure, I just want to drive a "random" simulation on one place and have it follow the same behavior on a different implementation.

推荐答案

如果您不需要加密安全的 RNG,那么 MT 或 LCG 就可以了.尽管如此,一些流密码很容易用多种语言实现,或者已经可用,因此这些是可行的路径.所有这些都是确定性的,相同的种子会产生相同的随机数,而且速度非常快.

If you don't need a cryptographicly secure RNG then MT or LCG would do. Still, some stream ciphers are pretty easy to implement in many languages, or already available, so these are viable paths. All of these are deterministic, same seed results in the same random numbers, and quite fast.

这篇关于跨平台跨语言跨一切实际确定性随机数生成器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆