syz*_*ygy 5 random distribution gaussian ios
可能重复:
在Objective-C/C中生成随机高斯双精度
有没有办法让一个随机数不是来自均匀分布,而是来自iOS中的高斯(正态,贝尔曲线)分布?我发现的所有随机数生成器基本上是统一的,我想让数字簇围绕某一点.谢谢!
只需使用均匀分布生成器并应用Box-Muller变换:
double u1 = (double)arc4random() / UINT32_MAX; // uniform distribution
double u2 = (double)arc4random() / UINT32_MAX; // uniform distribution
double f1 = sqrt(-2 * log(u1));
double f2 = 2 * M_PI * u2;
double g1 = f1 * cos(f2); // gaussian distribution
double g2 = f1 * sin(f2); // gaussian distribution
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3694 次 |
| 最近记录: |