Выберите элемент из массива с вероятностью, пропорциональной его значению
У меня есть массив значений типа double, и я хочу выбрать из него значение, при котором вероятность выбора каждого значения обратно пропорциональна его значению. Например:
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, но я могу адаптировать любой псевдокод.