【发布时间】:2013-05-05 13:29:58
【问题描述】:
我有一个双精度数组,我想从中选择一个值,每个值被选择的概率与其值成反比。例如:
arr[0] = 100
arr[1] = 200
在此示例中,元素 0 将有 66% 的机会被选中,元素 1 的机会为 33%。我很难对此进行编码。到目前为止,我所做的是计算数组的总值(示例为 300),然后在计算它们占总数的百分比之前,我一直在反转数字。我什么都做不了。最后我希望:
new randomNumber
for(int y=0; y < probabilities.length; y++){
if(randomNumber < probabilities[y]){
Select probabilities[y]
}
}
或者有什么影响。有什么帮助吗?编码是用 Java 编写的,但我可以修改任何伪代码。
【问题讨论】:
标签: arrays numpy select random weighted