我无法理解这个,哪个更随机?
rand()
OR:
rand() * rand()
我发现这是一个真正的脑筋急转弯,你能帮我吗?
编辑:
直觉上,我知道数学上的答案是它们是同样随机的,但我不禁想,如果你在将两者相乘时“运行随机数算法”两次,你会创建比只做一次更随机的东西。
我无法理解这个,哪个更随机?
rand()
OR:
rand() * rand()
我发现这是一个真正的脑筋急转弯,你能帮我吗?
编辑:
直觉上,我知道数学上的答案是它们是同样随机的,但我不禁想,如果你在将两者相乘时“运行随机数算法”两次,你会创建比只做一次更随机的东西。
当前回答
当你对随机数的组合会发生什么感到怀疑时,你可以利用你在统计理论中学到的经验。
在OP的情况下,他想知道X*X=X^2的结果是什么,其中X是沿统一[0,1]分布的随机变量。我们将使用CDF技术,因为它只是一对一映射。
由于X~Uniform[0,1],其cdf为:fX(X)=1我们需要转换Y<-X^2,因此Y=X^2求逆x(y):sqrt(y)=x,这给出了x作为y的函数。接下来,求导数dx/dy:d/dy(sqrt(y))=1/(2sqrt(y)
Y的分布如下:fY(Y)=fX(x(Y))|dx/dy |=1/(2 sqrt(Y)
我们还没有完成,我们必须得到Y的域,因为0<=x<1,0<=x^2<1因此Y在范围[0,1)内。如果你想检查Y的pdf是否真的是pdf,请在域中集成它:从0到1集成1/(2 sqrt(Y)),实际上,它会弹出为1。此外,请注意所述函数的形状看起来像belisarious发布的内容。
至于X1+X2+…+Xn,(其中Xi ~一致[0,1]),我们可以求助于中心极限定理,它适用于存在矩的任何分布。这就是Z检验存在的原因。
用于确定生成的pdf的其他技术包括雅可比变换(这是cdf技术的广义版本)和MGF技术。
编辑:作为澄清,请注意,我所说的是结果转换的分布,而不是其随机性。这实际上是一个单独的讨论。我实际上得到的是(rand())^2。对于rand()*rand((),它要复杂得多,无论如何,这不会导致任何类型的均匀分布。
其他回答
很容易证明两个随机数之和不一定是随机的。假设你有一个6面骰子。每个数字有1/6的机会出现。现在假设你有2个骰子,并将结果相加。这些总数的分布不是1/12。为什么?因为某些数字比其他数字更多。它们有多个分区。例如,数字2仅是1+1的和,但7可以由3+4、4+3或5+2等组成,因此它出现的机会更大。
因此,在本例中,对随机函数应用变换(在这种情况下为加法)不会使其更随机,或必然保持随机性。在上述骰子的情况下,分布偏向于7,因此随机性较小。
没有比这更随机的了。它要么是随机的,要么不是随机的。随机意味着“难以预测”。这并不意味着不确定性。如果random()是随机的,那么random(()和random(*random)都是随机的。就随机性而言,分布是无关紧要的。如果出现不均匀分布,则意味着某些值比其他值更有可能;它们仍然是不可预测的。由于涉及伪随机性,所以这些数字非常具有确定性。然而,在概率模型和模拟中,伪随机性通常是足够的。众所周知,使伪随机数生成器复杂化只会使其难以分析。不太可能提高随机性;它经常导致它无法通过统计测试。随机数的期望财产很重要:重复性和再现性、统计随机性、(通常)均匀分布和大周期是少数几个。关于随机数上的变换:正如有人所说,两个或多个均匀分布的和产生正态分布。这是加法中心极限定理。无论源分布如何,只要所有分布都是独立和相同的,它都适用。乘性中心极限定理表示两个或多个独立且一致分布的随机变量的乘积是对数正态的。其他人创建的图形看起来是指数型的,但实际上是对数正态的。因此random()*random(()是对数正态分布的(尽管它可能不是独立的,因为数字是从同一个流中提取的)。这在某些应用中可能是期望的。然而,通常最好生成一个随机数并将其转换为对数正态分布数。Random()*Random()可能很难分析。
欲了解更多信息,请访问www.performorama.org查阅我的书。这本书正在建设中,但相关材料已经存在。请注意,章节和章节编号可能会随时间而变化。第8章(概率论)——第8.3.1和8.3.3节,第10章(随机数)。
强制性的xkcd。。。
当你对随机数的组合会发生什么感到怀疑时,你可以利用你在统计理论中学到的经验。
在OP的情况下,他想知道X*X=X^2的结果是什么,其中X是沿统一[0,1]分布的随机变量。我们将使用CDF技术,因为它只是一对一映射。
由于X~Uniform[0,1],其cdf为:fX(X)=1我们需要转换Y<-X^2,因此Y=X^2求逆x(y):sqrt(y)=x,这给出了x作为y的函数。接下来,求导数dx/dy:d/dy(sqrt(y))=1/(2sqrt(y)
Y的分布如下:fY(Y)=fX(x(Y))|dx/dy |=1/(2 sqrt(Y)
我们还没有完成,我们必须得到Y的域,因为0<=x<1,0<=x^2<1因此Y在范围[0,1)内。如果你想检查Y的pdf是否真的是pdf,请在域中集成它:从0到1集成1/(2 sqrt(Y)),实际上,它会弹出为1。此外,请注意所述函数的形状看起来像belisarious发布的内容。
至于X1+X2+…+Xn,(其中Xi ~一致[0,1]),我们可以求助于中心极限定理,它适用于存在矩的任何分布。这就是Z检验存在的原因。
用于确定生成的pdf的其他技术包括雅可比变换(这是cdf技术的广义版本)和MGF技术。
编辑:作为澄清,请注意,我所说的是结果转换的分布,而不是其随机性。这实际上是一个单独的讨论。我实际上得到的是(rand())^2。对于rand()*rand((),它要复杂得多,无论如何,这不会导致任何类型的均匀分布。
浮动随机数通常基于一种算法,该算法产生一个介于零和一定范围之间的整数。因此,通过使用rand()*rand((),您实际上是在说int_rand()*int_rand()/rand_max ^2-这意味着您排除了任何素数/rand_max^2。
这显著改变了随机分布。
rand()在大多数系统中都是均匀分布的,如果正确播种,很难预测。除非你有特殊的理由对其进行数学运算(例如,将分布成形为所需的曲线),否则使用该方法。