我有一个元素 list 。这些项目中的每一个都有自己的概率。
谁能推荐一种算法来根据概率挑选元素?
最佳答案
- 生成一个均匀分布的随机数。
- 遍历你的列表,直到被访问元素的累积概率大于随机数
示例代码:
double p = Math.random();
double cumulativeProbability = 0.0;
for (Item item : items) {
cumulativeProbability += item.probability();
if (p <= cumulativeProbability) {
return item;
}
}
关于java - 如何通过概率选择一个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9330394/