Entwerfen Sie ein schneller Algorithmus, um wiederholt erzeugen Zahlen aus der diskreten Verteilung: ein Array a [] von nicht negativen reellen Zahlen diese Summe auf 1 Gegeben ist das Ziel, den Index i mit Wahrscheinlichkeit ein [i] zurückzukehrenAlgorithmus zum Generieren von Zufallszahlen aus einer diskreten Verteilung?
Ich fand diese Frage in einem Online-Algorithmus-Buch, Einführung in die Programmierung in Java, Kapitel 4.2: Sortieren und Suchen (http://introcs.cs.princeton.edu/java/42sort/).
der Hinweis sagt:
bilden ein Array s [] der kumulierten Summen, so daß s [i] die Summe der ersten Elemente der i a []. Erzeugen Sie nun eine zufällige reelle Zahl r zwischen 0 und 1 und verwenden Sie die binäre Suche, um den Index i zurückzugeben, für den s [i] ≤ s [i + 1] gilt.
einige, wie ich nicht in der Lage bin den Hinweis zu verstehen und daher finden kann nicht die Lösung ..
Was haben Sie bisher versucht, die nicht funktioniert? Bitte posten Sie Ihren Code und eine Erklärung, wie es nicht wie erwartet funktioniert, und jemand hier wird Ihnen gerne helfen, herauszufinden, wie Sie ihn beheben können.Wir machen aber nicht nur deine Arbeit für dich - du musst etwas Arbeit machen, um es selbst herauszufinden. :) –
mögliches Duplikat von [Datenstruktur für geladene Würfel?] (Http://stackoverflow.com/questions/5027757/data-structure-for-loiled-dice) – templatetypedef
Uhmm, da 'a []' nicht negativ ist , 's [i] <= s [i + 1]' gilt für alle "i". Der Hinweis scheint falsch zu sein. Ich denke, es bedeutet zu sagen, dass Sie das erste 'i' zurückgeben müssen, so dass' s [i]> = r'. – IVlad