我有一個結構數組,並且結構中的一個字段是一個浮點數。我想選擇其中一個結構,其中選擇它的概率是相對於浮動的價值。即C++函數用於從列表中選取每個元素具有明顯概率的列表
struct s{
float probability;
...
}
s sArray[50];
什麼是決定選擇哪個最快的方法?有這個功能嗎?如果我知道所有概率字段的總和(注意它不會是1),那麼我是否可以遍歷每個s並將probability/total_probability
與隨機數進行比較,並更改每個s的隨機數?即
if((float) (rand()/RAND_MAX) < probability)...
s->概率應該是當前 - >概率,正確嗎? – Stuart 2010-04-16 00:03:26
'rand()/ static_cast(RAND_MAX)'將始終爲0(非常高的概率)或1(非常低的概率)。你可以試試'rand()/ static_cast (RAND_MAX)'。 –
2010-04-16 00:35:34
我用過:'(float)((float)rand()/ RAND_MAX)' 它適用於我。 – Stuart 2010-04-16 00:51:27