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 |