跨不同编程语言的随机数

时间:2010-10-28 17:33:43

标签: random

如果我在不同的编程语言中使用随机数生成器函数并且我选择了相同的种子..他们是否必须给我相同的随机数?

例如我使用Java和Perl ...给出了不同的数字。

3 个答案:

答案 0 :(得分:6)

跨语言的可移植性是使用您自己的随机数生成器的一个原因。 This article给出了一个非常小的随机数生成器,其算法已经过专家审查。您可以轻松地将生成器移植到支持32位无符号整数的基本操作的任何语言。在给定相同种子的情况下,每个实现都应返回相同的输出序列。

答案 1 :(得分:3)

不,除非两种语言碰巧使用相同的算法。

答案 2 :(得分:0)

只想添加,没有'随机'在计算机科学。

随机数生成取决于用于生成数字的数学函数。 例如,Java使用'线性同余生成器'。

如果两种编程语言使用完全相同的函数,理论上它们应该给出相同的随机函数。数。

如果您对如何生成随机数感兴趣,有一个很好的出版物,Donald Knuth的计算机编程艺术。