我认为randn
返回一个随机数,该随机数属于均值为 0,标准差为 1 的正态分布。因此,我希望得到一个在 (0, 1) 范围内的数字。但我得到的是一个不在 (0,1) 范围内的数字。
我究竟做错了什么?
我认为randn
返回一个随机数,该随机数属于均值为 0,标准差为 1 的正态分布。因此,我希望得到一个在 (0, 1) 范围内的数字。但我得到的是一个不在 (0,1) 范围内的数字。
我究竟做错了什么?
您正在考虑均匀分布。理论上,正态分布可以有非常大的数字,但概率非常低。
randn
平均值为 0,标准差为 1。正态分布是钟形曲线/高斯形状,在均值处的概率最高,并且相对于标准差的概率下降。
您正在寻找的是rand
,它从均匀随机分布中“采样”,它给出了介于 0 和 1 之间的数字,并且在所有点上具有均匀的概率。
另一个可能的混淆来源:
具有均值和方差的正态分布通常表示为N (0,1)。这有时被称为标准正态分布,意味着样本来自所有实数,即范围 (−∞,+∞),具有均值和方差。在这种情况下,标准偏差也是如此,但这个符号指定了方差(很多人搞砸了)。变换N (μ,σ 2 ) = μ + σ N (0,1),其中 μ 是均值,σ 2是方差,σ 是标准差,非常有用。0
1
0
1
1
类似地,开区间 (0,1) 上的连续均匀分布通常表示为U (0,1)。这通常被称为标准均匀分布,意味着样本是从 (0,1) 范围内均匀抽取的。类似地,变换U (a,b) = a + (b − a) U (0,1)(其中 a 和 b 表示缩放区间的边缘)是有用的。
请注意,这两种情况下的0
' 和1
' 除了作为描述每个分布的参数外,根本不代表相同的事物。这两个分布的采样范围称为支持度。