6

重複の可能性:
Objective-C/C でランダムなガウス倍精度を生成する

一様分布からではなく、iOS のガウス (通常、ベル曲線) 分布から乱数を取得する方法はありますか? 私が見つけたすべての乱数ジェネレーターは基本的に均一であり、特定のポイントの周りに数値をクラスター化したいと考えています。ありがとう!

4

2 に答える 2

9

一様分布ジェネレータを使用してBox-Muller Transformを適用するだけです:

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
于 2012-10-18T06:37:10.160 に答える
1

簡単なオプションの 1 つは、一様分布からのいくつかの数値を一緒に追加することです。多くのさいころベースのゲームでは、このアプローチを使用して、結果のほぼ正規分布を生成します。

ローリング 3 6 面ダイスの配布

ウィキペディア経由

必要なディストリビューションをより具体的に指定できる場合は、より正確なソリューションが存在する可能性がありますが、複数のロールを組み合わせることは、簡単でかなり柔軟なソリューションです。

于 2012-10-18T06:39:19.013 に答える