这是一个纯粹的理论问题。
我们都知道大多数(如果不是全部)随机数生成器实际上只生成伪随机数字。
假设我想要一个10到20的随机数。我可以这样做(myRandomNumber
是一个整型变量):
myRandomNumber = rand(10, 20);
但是,如果我执行此声明:
myRandomNumber = rand(5, 10) + rand(5, 10);
这个方法更多是随机的吗?
答案 0 :(得分:4)
没有。
随机性不是累积的。 rand()
函数使用两个定义的端点之间的均匀分布。
添加两个均匀分布会使统一分布无效。它会形成一个奇怪的金字塔,最容易向中心倾斜。这是因为随着自由度的增加,概率密度函数的积累。
我恳请你读一读:
和此:
特别注意屏幕右上角的两个均匀分布会发生什么。
您可以通过将所有总和写入文件然后在Excel中绘图来证明这一点。确保给自己足够大的样本量。 25000就足够了。
答案 1 :(得分:0)
了解这一点的最佳方式是考虑流行的公平地面游戏" Lucky Seven"。 如果我们滚动六面模具,我们知道获得六个数字中的任何一个的概率是相同的 - 1/6。 如果我们掷两个骰子并添加出现在两个骰子上的数字怎么办? 总和可以是2(骰子显示'一个')uptil 12(骰子显示'六') 从2到12获得不同数字的概率不再一致。获得“七”的可能性。是最高的。可以有1 + 6,a 6 + 1,a 2 + 5,a 5 + 2,a 3 + 4和4 + 3。获得“七”的六种方式36种可能性中的一种。 如果我们绘制分布图,我们得到一个金字塔。概率为1,2,3,4,5,6,5,4,3,2,1(当然每个都必须除以36)。 总和的金字塔形图(和概率分布)可以通过卷积获得。 如果我们知道预期价值'对于两个随机数和标准差(' sigma'),我们可以快速准备好计算两个随机数之和的预期值。 预期值只是添加两个单独的预期值。 西格玛是通过应用"毕达哥拉斯定理"在两个单独的sigma(每个sigma的平方和的平方根)。