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.