Wählen Sie das Element aus dem Array mit einer Wahrscheinlichkeit aus, die proportional zu seinem Wert ist

Ich habe ein Array von Doppelwerten und möchte einen Wert daraus auswählen, wobei die Wahrscheinlichkeit, dass jeder ausgewählte Wert ausgewählt wird, umgekehrt proportional zu seinem Wert ist. Zum Beispiel:

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

In diesem Beispiel wird Element 0 zu 66% und Element 1 zu 33% ausgewählt. Ich habe Schwierigkeiten, dies zu codieren. Bisher habe ich den Gesamtwert des Arrays berechnet (das Beispiel wäre 300), dann habe ich mit der Inversion der Zahlen herumgespielt, bevor ich sie als Prozentsatz der Gesamtzahl berechnet habe. Ich kann nichts zum Arbeiten bringen. Am Ende wünsche ich:

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

Oder etwas, das sich darauf auswirkt. Irgendeine Hilfe? Die Codierung erfolgt in Java, aber ich kann jeden Pseudocode anpassen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage