Heim >Web-Frontend >js-Tutorial >So generieren Sie gewichtete Zufallszahlen: Ist die kumulative Wahrscheinlichkeitsverteilung die Antwort?

So generieren Sie gewichtete Zufallszahlen: Ist die kumulative Wahrscheinlichkeitsverteilung die Antwort?

Linda Hamilton
Linda HamiltonOriginal
2024-11-11 04:09:03961Durchsuche

How to Generate Weighted Random Numbers: Is Cumulative Probability Distribution the Answer?

Gewichtete Zufallszahlen generieren: Beyond Rejection Sampling

Im Bereich der Wahrscheinlichkeit dient die Generierung gewichteter Zufallszahlen als wesentliches Werkzeug für Simulationen und statistische Modellierung. Während die Ablehnungsstichprobe oft als einfache Lösung dient, bringt sie Einschränkungen hinsichtlich der Leistung und des Speicherverbrauchs mit sich.

Eine elegante Alternative ergibt sich in Form der kumulativen Wahrscheinlichkeitsverteilung. Dieser Ansatz macht eine vorgefertigte Nachschlagetabelle überflüssig, was zu erheblichen Speichereinsparungen und einer konstanten Leistung bei der Auswahl von Werten führt. So funktioniert es in JavaScript:

function weightedRand(spec) {
  var sum = 0;
  for (var i in spec) {
    sum += spec[i];
  }
  var r = Math.random() * sum;
  for (i in spec) {
    r -= spec[i];
    if (r <= 0) return i;
  }
}

Gewichtete Zufallszahlengeneratoren finden häufig Anwendungen in Szenarien wie:

  • Simulation probabilistischer Ereignisse
  • Auswahl von Elementen aus einer Bestandsaufnahme mit unterschiedlichen Wahrscheinlichkeiten
  • Erzeugung realistischer Datensätze, die ungleichmäßigen Verteilungen entsprechen

In bestimmten Fällen, in denen die Gewichte gleichmäßig verteilt sind, erweist sich ein noch einfacherer Ansatz als effektiv: Wählen Sie einfach einen zufälligen Index aus einem Array aus, der die möglichen Werte darstellt. Diese Methode greift jedoch bei ungleichmäßigen Gewichtsverteilungen zu kurz.

Denken Sie daran, dass die Wahl der Implementierung von Faktoren wie der Anzahl der Optionen, der Gewichtsverteilung und den gewünschten Leistungsmerkmalen abhängt.

Das obige ist der detaillierte Inhalt vonSo generieren Sie gewichtete Zufallszahlen: Ist die kumulative Wahrscheinlichkeitsverteilung die Antwort?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn