这是一个纯粹的理论问题。
我们都知道,大多数(如果不是全部)随机数生成器实际上只生成伪随机数。
假设我想要一个从 10 到 20 的随机数。我可以按如下方式执行此操作(myRandomNumber
作为整数类型变量):
myRandomNumber = rand(10, 20);
但是,如果我执行此语句:
myRandomNumber = rand(5, 10) + rand(5, 10);
这种方法更随机吗?
这是一个纯粹的理论问题。
我们都知道,大多数(如果不是全部)随机数生成器实际上只生成伪随机数。
假设我想要一个从 10 到 20 的随机数。我可以按如下方式执行此操作(myRandomNumber
作为整数类型变量):
myRandomNumber = rand(10, 20);
但是,如果我执行此语句:
myRandomNumber = rand(5, 10) + rand(5, 10);
这种方法更随机吗?
理解这一点的最好方法是考虑流行的游乐场游戏“幸运七”。如果我们掷一个六面骰子,我们知道获得六个数字中的任何一个的概率是相同的 - 1/6。如果我们掷两个骰子并将两个骰子上出现的数字相加会怎样?总和的范围可以从 2(两个骰子都显示“一”)到 12(两个骰子都显示“六”)。从 2 到 12 获得不同数字的概率不再一致。获得“七”的概率最高。可以有 1+6、6+1、2+5、5+2、3+4 和 4+3。从 36 种可能性中获得“七”的六种方法。如果我们绘制分布图,我们会得到一个金字塔。概率是 1,2,3,4,5,6,5,4,3,2,1(当然,每个都必须除以 36)。和的金字塔图(和概率分布)可以通过'卷积得到。如果我们知道两个随机数的“预期值”和标准偏差(“sigma”),我们可以快速计算两个随机数之和的预期值。期望值只是两个单独的期望值的加法。通过对两个单独的 sigma(每个 sigma 的平方和的平方根)应用“毕达哥拉斯定理”来获得 sigma。期望值只是两个单独的期望值的加法。通过对两个单独的 sigma(每个 sigma 的平方和的平方根)应用“毕达哥拉斯定理”来获得 sigma。期望值只是两个单独的期望值的加法。通过对两个单独的 sigma(每个 sigma 的平方和的平方根)应用“毕达哥拉斯定理”来获得 sigma。