Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zufallszahlen mit Wahrscheinlichkeitstabelle erzeugen (https://www.delphipraxis.net/144459-zufallszahlen-mit-wahrscheinlichkeitstabelle-erzeugen.html)

CalganX 8. Dez 2009 11:18


Zufallszahlen mit Wahrscheinlichkeitstabelle erzeugen
 
Hi,

ich habe eine Wahrscheinlichkeitsverteilung in Form einer Tabelle. Jeder Eintrag hat dort eine bestimmte Wahrscheinlichkeit < 1.0. Jetzt will ich Zufallszahlen auf Basis dieser Verteilung erzeugen, d.h. der Eintrag mit der Wahrscheinlichkeit .50, soll eben doppelt so wahrscheinlich sein, wie der Eintrag mit der Wahrscheinlichkeit .25.

Wie mache ich das denn am elegantesten?

Gruß
Christopher

Bernhard Geyer 8. Dez 2009 11:24

Re: Zufallszahlen mit Wahrscheinlichkeitstabelle erzeugen
 
1, Bestimm dir die Zufallszahl im gewünschten Bereich
2, Bestimm eine Zufallszahl [0..100] und Multiplizier sie mit deiner für unter (1) bestimmten Wahrscheinlichkeitswert
3, Ist der Wert > 1 dann ist die Zufallszahl (1) zu verwenden.

himitsu 8. Dez 2009 11:28

Re: Zufallszahlen mit Wahrscheinlichkeitstabelle erzeugen
 
- du rechnest alle Wahrscheinlichkeiten zusammen
Summe aller Wahrscheinlichkeiten der ganzen Werte -> z.B. (50 + 10 + 25 = 85)
- erstellst dir in diesem Bereich (0 <= Zufall < Summe) einen Zufall
- und nun gehst du alle Werte durch , reihst diese aneinander und schaust, in welchem Bereich deine Zufallszahl liegt ... tja, und der Wert ist dann der Gesuchte, entsprechend seiner Wahrscheinlichkeit
50 = 0..49
10 = 50..59
25 = 60..84
...
bei Zufall=58 wäre das Ergebnis 10, bzw. der Wert mit der Wahrscheinlichkeit von 10

shmia 8. Dez 2009 17:57

Re: Zufallszahlen mit Wahrscheinlichkeitstabelle erzeugen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe da früher schon mal eine Unit geschrieben im Prinzip genau das macht, was himitsu beschrieben hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz