float sample_normal(float u)
float sample_normal(float mean, float stddev, float u)
float sample_normal(float origmean, float origstddev, float minvalue, float maxvalue, float u)
vector2 sample_normal(vector2 u)
vector sample_normal(vector u)
vector4 sample_normal(vector4 u)
u
[0,1)(つまり、0以上1未満)範囲の数値または複数値。
mean
分布の平均。指定しなかった場合は0。
origmean
範囲を制限するminvalueとmaxvalueを指定しなかった場合には、その分布が持つ平均。
stddev
分布の標準偏差(スケール)。指定しなかった場合は1。
origstddev
範囲を制限するminvalueとmaxvalueを指定しなかった場合には、その分布が持つ標準偏差(スケール)。
minvalue,maxvalue
指定した時、フルで正規分布をサンプリングするのではなく、[minvalue,maxvalue]に制限された範囲の分布をサンプリングします。
指定したmeanとstddev、オプションのminvalueとmaxvalueを使って、正規分布をサンプリングします。
[0,1)(つまり、0以上1未満)範囲の均等にランダムなu値を指定すると、これは、正規的に分布した乱数を返します。
戻り値は、uに対して単調増加です。
vector2, vector, vector4のバージョンは、meanが0、stddevが1の複数サンプルを返します。
それらのベクトルの分布は、自然に等方的になります。つまり、分布を循環させても変わりません。
これはシミュレーションで役に立ちます。
分布を等方的に保持しながら、原点からの最大距離を追加するには、以下のコードを使用します:
sample_normal(0,1,0,maxdist,u.x) * sample_direction_uniform(set(u.y,u.z))
| See also |