int sample_discrete(int nvalues, float u)
int sample_discrete(float weights[], float u)
nvalues
返される整数値は、[0,nvalues-1]範囲では均等で、u==0では0、u==1ではnvalues-1を返します。
uが[0,1)(つまり、0以上1未満)範囲外の場合には、その出力をその範囲に制限してuの値を丸めることで、問題が起きないようにしています。
weights
[0,len(weights)-1]範囲の各整数値の相対ウェイト(合計が1である必要はありません)。
u
[0,1)(つまり、0以上1未満)範囲の数値。
u、0からnvalues-1までの均一なウェイト、または0からlen(weights)-1までのweights配列に基づいたウェイトに基づいて整数を返します。
[0,1)(つまり、0以上1未満)範囲の均等にランダムなu値を指定すると、nvaluesを受け取るバージョンは[0,nvalues-1]範囲の均等にランダムな整数を返します。
weightsを受け取るバージョンは[0,len(weights)-1]範囲のランダムな整数を返します。iの確率は、weights[i]/sum_of_weightsです。
| See also |