Wybierz element z tablicy z prawdopodobieństwem proporcjonalnym do jego wartości

Mam tablicę podwójnych i chcę wybrać z niej wartość, z prawdopodobieństwem wyboru każdej wartości odwrotnie proporcjonalnej do jej wartości. Na przykład:

arr[0] = 100
arr[1] = 200

W tym przykładzie element 0 miałby 66% wybranych, a element 1 33% szansy. Mam trudności z kodowaniem tego. Do tej pory zrobiłem obliczenie całkowitej wartości tablicy (przykład wynosiłby 300), a potem bawiłem się odwracaniem liczb przed obliczeniem ich jako procent całości. Nie mogę nic załatwić. W końcu pragnę:

new randomNumber
for(int y=0; y < probabilities.length; y++){
     if(randomNumber < probabilities[y]){
          Select probabilities[y]
     }
}

Albo coś na to wpływa. Jakaś pomoc? Kodowanie jest w Javie, ale mogę dostosować dowolny pseudokod.

questionAnswers(4)

yourAnswerToTheQuestion