1

哪个更随机?

rand()

或者

rand() + rand()

或者

rand() * rand()

只是如何确定这一点?我是说。这真的让我很困惑!感觉可能都是一样随机的,但怎么可能绝对确定呢?!

任何人?

4

2 回答 2

8

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

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

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

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

在此处输入图像描述

您的第二种方法hist(f() + f())给出了在中心达到峰值的分布:

在此处输入图像描述

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

在此处输入图像描述

于 2012-06-22T09:13:47.783 回答
1

至于熵的数量,我想,是可比的。

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

为什么它们具有可比性 --- 因为如果攻击者可以猜测下一个伪随机值返回

rand()

接下来他猜对他来说并不难

rand()*rand()

然而,关于不同分布的争论是重要且有效的!

于 2012-06-22T09:10:14.087 回答