random - 下面伪代码中的高斯分布函数在哪里?
问题描述
我正在做我的最终作业,我提出了 Box Muller Gaussian Distribution 方法来寻找统一软件中的随机数。
我对在其中一本期刊中找到的伪代码的高斯分布函数感到非常困惑。
Pseudocode algoritma Box-Muller(Sukajaya dkk., 2012) :
a. Generate uniform random number u, v in range [-1, 1]
b. Calculate s = u2 + v2
c. Looping step 2 until s < 1
d. Find normal random numbers `z0 = u. √((-2lns)/s)` and z1 = v . √(- (-2lns)/s)
我认为伪代码只涉及 Box Muller,而高斯分布函数仅用于显示随机数的图表。
解决方案
Box-Muller 算法不包含高斯密度公式的直接实现。相反,它产生的结果(累积地)遵循该密度。z0
算法产生的结果z1
是两个独立的高斯随机值。如果您将算法迭代数百或数千次并构建所有z
值的直方图,它将开始看起来像高斯分布的钟形曲线。它背后的数学超出了 StackOverflow 帖子的范围,所以我建议你只推“我相信!” 按钮,或者如果您想要更多解释和各种原始来源的链接,请参阅Wikipedia 文章。
当您说“高斯分布函数仅用于显示随机数字图”时,我不确定您的意思。高斯分布是最重要的建模分布之一,因为来自所有其他具有有限方差的分布的值的总和将收敛到分布中的高斯分布。这意味着如果您正在研究平均值(由总和构建)或大量小错误的聚合,高斯分布在表征结果方面做得很好。
推荐阅读
- timer - 固定两个连续时间点之间的时间误差
- html - 条件 HTML 语句未按预期工作
- python-3.x - 如何使用 pyiCloud 访问 iCloud 笔记
- python - 添加一个双数索引作为 dict 的值,但它添加 2 个个位数而不是 1 个双位数
- html - 如何从用 HTML 创建的表单中提取值并将变量连接到二维码图像 url 中?
- javascript - AngularJS
选择时有点动摇 - c - 显式迭代计数器私有化与 OMP 并行
- node.js - Git:在 Node.js 中将文件夹从一个分支移动到另一个分支
- ios - 没有这样的模块 'AgoraRtcKit' Xcode Swift 错误
- export - 如何更改用于导出价目表的查询?