アイテムのリストがあります。各アイテムには独自の確率があります。
確率に基づいてアイテムを選択するアルゴリズムを提案できる人はいますか?
ベストアンサー1
- 一様に分布した乱数を生成します。
- 訪問した要素の累積確率が乱数より大きくなるまでリストを反復する
サンプルコード:
double p = Math.random();
double cumulativeProbability = 0.0;
for (Item item : items) {
cumulativeProbability += item.probability();
if (p <= cumulativeProbability) {
return item;
}
}