哪个更随机?

时间:2012-06-22 09:01:24

标签: math random

哪个更随机?

rand()

OR

rand() + rand()

OR

rand() * rand()

如何确定这一点?我的意思是。这真让我困惑!一个人觉得他们可能都是随机的,但一个人怎么能绝对肯定?!

任何?

2 个答案:

答案 0 :(得分:6)

更加随机的概念"没有意义。您的三种方法给出了随机数的不同分布。我可以在Matlab中说明这一点。首先定义一个函数f,在调用时,它会为您提供10,000个随机数的数组:

f = @() rand(10000,1);

现在看看你的三种方法的分布。

您的第一种方法hist(f())给出了统一的分布:

enter image description here

你的第二种方法hist(f() + f())给出了一个在中心达到顶峰的分布:

enter image description here

您的第三种方法hist(f() .* f())给出了一个分布,其中数字接近零的可能性更大:

enter image description here

答案 1 :(得分:1)

关于熵量,我猜,是可比较的。

如果您需要比现有更多的熵(随机性),请使用加密强随机生成器。

为什么它们具有可比性---因为如果攻击者可以猜测

返回的下一个伪随机值
rand()

他下次猜测并不会显得更加困难

rand()*rand()

然而关于不同发行版的争论很重要且有效!