Der Java-Generator für die Poisson-und Uniform-Distributionen?
Aus, was ich verstehe, die standard-generator ist für die Normale Verteilung. Ich habe zum generieren von Zufallszahlen, die gemäß der Normal -, Uniform-und Poisson-Verteilungen, aber ich kann nicht scheinen zu finden, eine Klasse für die letzten 2.
Habe ich zu generieren Sie im Bereich von 0 - 999999.
InformationsquelleAutor | 2009-04-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als David hat darauf hingewiesen, dass der mitgelieferte pseudo-random number generator verwendet, der eine Gleichmäßige Verteilung.
Für die anderen beiden, würde ich die Cern Colt library-Funktionen:
Diese Bibliothek Funktionen, die leicht erlauben Ihnen, eine zufällige Zahl aus jeder Verteilung, anstatt Ihnen eine Wahrscheinlichkeits-Dichte-Funktion oder kumulative Dichte-Funktion und erwartet Sie, um daraus die Nummer selbst (die scheint zu sein, die Apache-Commons-Math-Ansatz):
Auch, Bedenken Sie, dass die Poisson-Verteilung P(λ) für große λ kann approximiert sehr gut durch die Normalverteilung N(λ, sqrt(λ)).
Das ist, weil die Poisson-und normalverteilungen nicht ein maximum oder minimum (gut, Poisson hat einen festen minimum von 0).
sehr nette Sammlung, danke!
Zwei deiner links sind nun 404. 🙁
InformationsquelleAutor Simon Nickerson
Die standard-Java-RNG (java.util.Random), und Ihre Unterklassen wie java.Sicherheit.SecureRandom, schon erzeugen Sie gleichmäßig verteilte Werte.
Haben Sie auch eine Methode, nextGaussian, dass Renditen normal verteilte Werte. Standardmäßig wird die Verteilung hat Mittelwert null und Standardabweichung 1, aber das ist trivial gezwickt. Multiplizieren Sie einfach durch die erforderlichen en.d.... und fügen Sie die erforderlichen bedeuten. So, zum Beispiel, wenn Sie wollte normal verteilte Werte mit einem Mittelwert von 6 und einer Standardabweichung von 2,5, Sie würde dies tun:
Die Poisson-Verteilung wird nicht explizit unterstützt, aber Sie können fake it, dasselbe zu tun wie Tom ' s Python-code.
Alternativ können Sie daran interessiert, meine Uncommons Mathematik-Bibliothek, bietet utility-Klassen für Normal -, Poisson-und andere Distributionen.
InformationsquelleAutor Dan Dyer
Eigentlich die standard-generator ist für die gleichmäßige Verteilung. Der einfache random number generator in jeder Sprache/Bibliothek wird immer (in allen Fällen, die ich kenne) verwenden, die gleichmäßige Verteilung, denn das ist es, was aus all den beliebten Pseudo-zufälligen Nummern-generator-algorithmen - grundsätzlich einheitliche Zufallszahlen sind der einfachste.
Sehe ich Eddie schon zeigte Sie auf einen link für andere Distributionen, so werde ich überspringen, schreiben Sie den rest dieses...
InformationsquelleAutor David Z
Lassen Sie mich Vorwort dies mit der Tatsache, dass keiner das ist wirklich zufällig, ich spreche hier von pseudo-Zufallszahlen-Generatoren.
Lassen Sie mich auch sagen, dass ich noch nie zu tun hatte, das für die Produktion von hochwertigem code. Ich habe dies getan, für ein hw-Zuordnung obwohl, in Python. Ich simuliertes Poisson-Zufallsvariablen.
Den Weg, dass ich es verwenden die folgenden Tatsachen:
Insbesondere, die Sie verwenden können, die Tatsache, dass: wenn X1, ... Xn sind unabhängig standard exponentielle Zufallsvariablen, dann ist Z = min(k : X1 + ... + Xk < λ) - 1 Poisson(λ).
Deswegen schrieb ich den folgenden code in python zu generieren Poisson-Werte:
Beispiel zur Nutzung der Klasse ist:
Ich dies geschrieben hier, da ist es gut zu wissen, dass diese Arten von Beziehungen existieren, und diese inverse transform-Methode gibt Ihnen einen Allgemeinen Weg, um mit dem generieren von zufälligen Werten, die sich nach einer bestimmten kontinuierlichen Verteilung.
InformationsquelleAutor Tom