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 |