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

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

问题描述

我正在寻找一种算法来从给定的种子生成随机数,但特别要求它将始终生成相同的序列号,而不考虑底层计算机体系结构或语言实现。

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 vs 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天全站免登陆