Wie kann ich mit Mathematik ungleiche Zufalls Verteilung machen?

... komplette Frage anzeigen

3 Antworten

Wenn du die Verteilung wirklich ganau so vorgeben willst, würde ich wie folgt vorgehen:

Dein Zufallsgenerator erzeugt eine Zahl >= 0 und kleiner 1.

ist die erzeugte Zahl >=0 und <0,3 (=3/10), so wird 1 ausgegeben.
ist sie >= 0,3 und <0,55 (=3/10 + 2,5/10), so wird 2 ausgegeben
ist sie >= 0,55 und <0,75 (=0,55 +2/10), so wird 3 ausgegeben
ist sie >= 0,75 und <0,9 (=0,75 + 1,5/10), so wird 4 ausgegeben,
ist sie >0,9 wird 5 ausgegeben.

So erhältst du exakt die Wahrscheinlichkiten, die du wünscht (sofern dein Zufallsgenerator ein "echter" ist)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Dearex
16.09.2016, 15:01

Etwas einfacher erklärt als PeterKremsner/Wikipedia danke:D

0

Die Methode wurde allgemein von [gfntom] schon erzählt. Meine Antwort betrifft die spezifische Verteilung. Ich glaube, du redest von dieser besonderen Gleichgewichtsverteilung von Ziffern (0 bis 9), die sich daraus ergibt, wenn man Zahlen miteinander multipliziert. (Die Benford'sche Verteilung.)

Es gilt ℙ[X ≤ d] = log₁₀(d+1) =: F(d), wobei X die Zufallszahl ist mit Werten in {1; 2; …; 9} und d∈{0; 1; 2; …; 9}.

Sei Z eine durch deinen Taschenrechner oder Rechner uniform verteilte Zufallszahl in [0; 1]. Um X zu erzeugen berechnet man:

X := floor(10^Z)

um diese Zufallsziffern zu erzeugen. Wie habe ich dies erhalten? Na durch Umformung von:

F(X–1) ≤ Z < F(X)

nach X. Da F monoton ist, gilt das o. s. gdw. X–1 ≤ F¯¹(Z) < X, gdw. X = floor(F¯¹(Z))+1. (Die zu lösende Ungleichung ist aber anders je nach Kontext.) Somit stimmt das, was der [PeterKremsner] andeutete.

Auf manchen Taschenrechnern wäre der Befehl noch expliziter:

floor(10^(rand()))

Probier es mal aus!

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Dearex
16.09.2016, 15:23

Gerne aber mal wann anders ;D

Für meinen Fall funktioniert es jetz 1A

Ich hab leider nur nen Unparteiischen Zufallsgenerator und + - * / und wurzel und ².
0

Allgemein macht man das oft mit der Inversionsmethode:

https://de.wikipedia.org/wiki/Inversionsmethode

Die Verteilungsfunktion der Normalverteilung zB geht von 0 bis 1.

Wenn du also die Inverse Verteilungsfunktion der Normalverteilung mit gleichverteilten Zufallszahlen im Intervall 0 bis 1 fütterst bekommst du im Endeffekt einen Normalverteilten Zufall heraus.

Eine andere Möglichkeit geht über bestimmte Tricks in der Wahrscheinlichkeitsrechnung.

So ist zB die Summe zweier unabhängiger gleichverteilter Zufallsvariablen (aufgrund der zugrunde liegenden Faltung) Dreiecksverteilt.

https://de.wikipedia.org/wiki/Stetige\_Gleichverteilung

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Dearex
16.09.2016, 15:02

Danke, lässt sich mit der Methode von gfntom verwirklichen

0

Was möchtest Du wissen?