【发布时间】:2018-06-08 23:25:59
【问题描述】:
如果我在不同的编程语言中使用随机数生成器函数并且我选择了相同的种子.. 他们必须给我相同的随机数吗?
例如,我使用 Java 和 Perl ...给出了不同的数字。
【问题讨论】:
标签: random
如果我在不同的编程语言中使用随机数生成器函数并且我选择了相同的种子.. 他们必须给我相同的随机数吗?
例如,我使用 Java 和 Perl ...给出了不同的数字。
【问题讨论】:
标签: random
跨语言的可移植性是使用您自己的随机数生成器的原因之一。 This article 提供了一个非常小的随机数生成器,其算法已经过专家的审查。您可以轻松地将生成器移植到任何支持对 32 位无符号整数进行基本操作的语言。给定相同的种子,每个实现都应返回相同的输出序列。
【讨论】:
不,除非两种语言碰巧使用相同的算法。
【讨论】:
只是想补充一下,计算机科学中没有“随机”这样的东西。
随机数的生成取决于用于生成数字的数学函数。 例如,Java 使用“线性同余生成器”。
如果两种编程语言使用完全相同的函数,理论上它们应该给出相同的“随机”数。
如果您对如何生成随机数更感兴趣,可以阅读 Donald Knuth 的《计算机编程艺术》一书。
【讨论】: