c++ - 正态分布发生器的种类
问题描述
我有一个问题。我需要这种正态分布生成器的文档类型。我找到了它并且工作正常。它是什么?这不是分布的反转,也不是蒙特卡洛方法。我不知道这种方法。
double Class:: normal(const double mean, const double std)
{
static const double pii = 3.1415927;
static const double r_max = RAND_MAX + 1;
return std * sqrt(-2 * log((rand() + 1) / r_max))*sin(2 *pii*rand() / r_max) + mean;
}
解决方案
这看起来像一个Box-Mueller 变换,将统一的 RV 转换为普通的
推荐阅读
- javascript - 获取文本坐标中文本区域中的鼠标单击位置
- angular - 为什么 Angular 在提供者列表中确实存在“”时不抛出任何提供者?
- swift - swift中的正则表达式
- r - R Plotly禁用图例单击和图例双击
- android - 将图像上传到 Firebase 时出现 StorageException
- python - 模拟具有特定时间特征的噪声
- php - 如何使用 PHP 从 XML API url 获取特定数据
- r - 如何使用 R 求解两个未知数的方程组?
- reactjs - 使用flux-react-router发送道具
- python - 如何将字符串元组的元组转换为单词?