哪个更随机?
rand()
OR
rand() + rand()
OR
rand() * rand()
如何确定这一点?我的意思是。这真让我困惑!一个人觉得他们可能都是随机的,但一个人怎么能绝对肯定?!
任何?
答案 0 :(得分:6)
更加随机的概念"没有意义。您的三种方法给出了随机数的不同分布。我可以在Matlab中说明这一点。首先定义一个函数f
,在调用时,它会为您提供10,000个随机数的数组:
f = @() rand(10000,1);
现在看看你的三种方法的分布。
您的第一种方法hist(f())
给出了统一的分布:
你的第二种方法hist(f() + f())
给出了一个在中心达到顶峰的分布:
您的第三种方法hist(f() .* f())
给出了一个分布,其中数字接近零的可能性更大:
答案 1 :(得分:1)
关于熵量,我猜,是可比较的。
如果您需要比现有更多的熵(随机性),请使用加密强随机生成器。
为什么它们具有可比性---因为如果攻击者可以猜测
返回的下一个伪随机值rand()
他下次猜测并不会显得更加困难
rand()*rand()
然而关于不同发行版的争论很重要且有效!