Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zufallszahl normalverteilt errechnen mit Sigma (https://www.delphipraxis.net/179943-zufallszahl-normalverteilt-errechnen-mit-sigma.html)

Dragon27 12. Apr 2014 11:25

Zufallszahl normalverteilt errechnen mit Sigma
 
Hallo zusammen,

wir programmieren gerade eine Logistiksimulation in PHP und kommen bei einem mathematischen Problem nicht weiter.
Vielleicht kann einer von Euch helfen. Die Problemstellung ist eigentlich recht interessant ;)

Wir haben folgende Angaben:

Lieferzeit: 1,9 Perioden
Abweichung: 0,3 Perioden

Nun soll aus diesen Werten errechnet werden, wann das besagte Teil denn nun eintrifft. Das Ganze
sollte sich annährend Normalverteilt verhalten.

Meine Recherchen ergaben folgendes:

Es gibt sowohl eine "Polar Methode" als auch die "Box Müller Methode". Bei beiden kann man aber keine
Abweichung angeben.

Wäre super, wenn jemand von Euch einen Tipp hat.

Danke!

himitsu 12. Apr 2014 13:27

AW: Zufallszahl normalverteilt errechnen mit Sigma
 
Versteh ich das jetzt falsch, oder soll hier einfach nur eine Zufallszahl rauskommen, welche im Bereich von 1,6 bis 2,2 liegt?

Die meisten Zufallsgeneratoren sind doch halbwegs normalverteil, also einfach

1,9 + (Random(0,3 * 2) - 0,3) = 1,9 + Random(-0,3 bis 0,3) :gruebel:

(1,9 - 0,3) + Random(0,3 * 2) = 1,6 + Random(0 bis 0,6)

Dragon27 12. Apr 2014 13:44

AW: Zufallszahl normalverteilt errechnen mit Sigma
 
Hallo himitsu,

dein Ansatz stimmt nicht ganz, da dieser davon ausgeht, dass alle Zahlen mit der gleichen Wahrscheinlichkeit
gezogen werden.

Bei uns wäre es so, dass die Wahrscheinlichkeit für 1,9 Perioden höher liegen muss als für 2,4 Perioden.
Im Prinzip ist ja auch eine Lieferzeit von 4,0 Perioden bei einer Normalverteilung möglich aber sehr unwahrscheinlich.

Sprich du hast ja eine Glockenkurve die gegen +/- unendlicht geht. Das kann man aber logischerweise nicht programmieren.
Man muss dann einen Interval "rausschneiden"

Also ein paar Beispiele aus dem Leben:

1. in den meißten Fällen wird ein Produkt 1,9 Perioden zum liefern benötigen
2. Manchmal wird es früher oder später da sein (1,5 oder 2,4 Perioden)
3. Auch kann es passieren dass der LKW umkippt beim liefern und dann eine Zeit von 4 Perioden rauskommt (unwahrscheinlich aber möglich)

Danke für deinen Beitrag!

Mathematiker 12. Apr 2014 14:47

AW: Zufallszahl normalverteilt errechnen mit Sigma
 
Hallo,
suche einfach AMRandom 1.1.3 (Freeware). Die Funktion
Delphi-Quellcode:
function Random_Normal (const Mean, StdDev: Extended): Extended; overload;
dürfte genau das machen, was Du suchst.

Beste Grüße
Mathematiker

Namenloser 12. Apr 2014 16:29

AW: Zufallszahl normalverteilt errechnen mit Sigma
 
Zitat:

Zitat von himitsu (Beitrag 1255422)
Die meisten Zufallsgeneratoren sind doch halbwegs normalverteil

Nicht normalverteilt, gleichverteilt sind die.

Wäre mal eine interessante Aufgabe, sich einen normalverteilten Zufallsgenerator zu überlegen. Spontane Idee: Gleichverteilte Zufallszahl zwischen 0 und 1 ziehen, dann Umkehrfunktion des gaußschen Integrals berechnen und entsprechend skalieren. Weiß aber gerade schon nicht mehr, wie ich darauf gekommen bin und ob es Sinn macht...

Nur so Gedankenspiele, nimm natürlich das fertige.

BUG 12. Apr 2014 16:57

AW: Zufallszahl normalverteilt errechnen mit Sigma
 
Zitat:

Zitat von Namenloser (Beitrag 1255440)
Weiß aber gerade schon nicht mehr, wie ich darauf gekommen bin und ob es Sinn macht...

Das macht Sinn. Man kann bei Bedarf mit dieser Methode (Inverse der Verteilungsfuntion benutzen) sogar unbekannte Verteilungen approximieren, von denen man nur eine ausreichend große Stichprobe hat :twisted:

Dragon27 12. Apr 2014 17:47

AW: Zufallszahl normalverteilt errechnen mit Sigma
 
Hallo,

danke für Eure Antworten....

Da ich in Mathe nicht gerade ein Genie bin und mir eine Delphi Funktion diesmal leider nicht hilft wäre ich
für nen "PHP" Gedankenanstoß dankbar;)

Danke!

Namenloser 12. Apr 2014 18:00

AW: Zufallszahl normalverteilt errechnen mit Sigma
 
PHP hat wohl eine undokumentierte Funktion: http://www.php.net/manual/en/functio...ens-normal.php

Wofür der Parameter $x ist – man weiß es nicht.

BUG 12. Apr 2014 18:31

AW: Zufallszahl normalverteilt errechnen mit Sigma
 
Zitat:

Zitat von Namenloser (Beitrag 1255455)
PHP hat wohl eine undokumentierte Funktion: http://www.php.net/manual/en/functio...ens-normal.php
Wofür der Parameter $x ist – man weiß es nicht.

Das scheint die Dichtefunktion zu sein, da macht das x schon Sinn :wink:

stats_rand_gen_normal sieht besser aus.
Ich würde davon abrate, ungetestet undokumentierte statistische Funktionen zu benutzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:55 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