Forum: PC-Programmierung Normalverteilte Ereignisse erzeugen


von CHH (Gast)


Lesenswert?

Hallo,

evtl. gibt es ein paar stochastisch Begabte hier die mir nen Tipp geben 
können, weil ich steh grad auf dem Schlauch.

Folgendes Problem:
Ich möchte über den Tag (24 Stunden) verteilt eine bestimmte Anzahl von 
Ereignissen simulieren, das ganze soll normalverteilt sein.
Ich stelle mir irgend ein Program vor, dass den ganzen Tag läuft und zu 
passender Zeit dann eben das Ereignis triggert (z.b. eine Webseite 
aufruft).

Mein Problem ist nur irgendwie, dass ich nicht weiß wie mein Program 
rausfinden kann, wann die Ereignisse ausgelöst werden müssen.

Mein erster Ansatz war die Glockenkurve als Wahrscheinlichkeit zu nehmen 
dass ein Ereigbnis in der aktuellen Stunde eintritt (Maxium der Kurve 
entsprechend 100%) ... und dann im Program in regelmäßigen Abständen 
eine Zufallszahl generieren - das Ereignis entsprechend dann auslösen, 
wenn die Zufallszahl kleiner ist als die aktuelle Wahrscheinlichkeit. 
Das funktioniert auch halbwegs, allerdings ist es so schwierig auf eine 
vorgegebene Zahl von Ereignissen zu kommen - und irgendwie hätte ich 
gerne diese Zufallszahlen weg.

Hat jemand zufällig ne Idee wie man das "besser" machen könnte? Oder wo 
man entsprechende Infos findet wie man sowas simuliert?

danke
CHH

von Thomas K. (rlyeh_drifter) Benutzerseite


Lesenswert?

Bitte mehr das Problem als die problematische "Lösung" schildern.

Was für Ereignisse?
Reicht dir vielleicht eine vorgegebene Tabelle? (braucht keine 
Zufallszahlen)
Sind die Zufallszahlen vielleicht schon normalverteilt?

von Christian B. (casandro)


Lesenswert?

Was soll denn normalverteilt sein? Eine normalverteilte Zahl erhältst Du 
beispielsweise in dem Du viele beliebig verteilte Zufallszahlen 
addierst.

Aber wie schon gesagt, was soll normalverteilt sein? "Ereignisse die 
normalverteilt über einen Tag sind" hat keinen Sinn. Du kannst höchstens 
Ereignisse erzeugen, deren zeitliche Abstände normalverteilt sind.

von Robert L. (lrlr)


Lesenswert?

Normalverteilung ist ja mal ziemlich eindeutig:

http://www.google.at/search?q=normalverteilung&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&hl=de&tab=wi&biw=976&bih=640

Mittag wären also die meisten Ereignisse

Lösung hab ich auf die schnelle auch keine

es gibt aber vermutlich eine mathematisch sehr einfach Möglichkeit aus 
der Zufallszahl (zwischen 0 und 1) eine normal-verteilte zu machen

leider ist mathe bei mir schon SEHR lange her..

(geschätzt:)
0,5 wäre also mittag
0,4 wäre ca. 11 Uhr
0,3 wäre ca. 9 Uhr
usw.

dann braucht "nur" mehr zb. 100er Zufallszahlen ermitteln..
(also alle im voraus) und zu den Zeiten dann "irgendwas machen"

von CHH (Gast)


Lesenswert?

Danke erstmal ...

Ich habe mein eigentliches Problem vermutlich zu kompliziert ausgedrückt 
- oder ich steh immer noch auf'm Schlauch.

Konkreter: Ich möchte auf einem Webserver die Zugriffe über den Tag 
simulieren. Ich weiß, dass über den ganzen Tag (normal)verteilt 1000 
Zugriffe kommen. Maximum sei um 12 Uhr.

Ich kann hergehen und normalverteilte Zufallszahlen erzeugen ... mir ist 
aber irgendwie nicht klar wie ich von der Zufallszahl zur Entscheidung 
komme, dass ich zu den Zeitpunkte x1,x2,... xn jeweils einen Zugriff 
generieren muss um am Ende des Tages 1000 normalverteilte Zugriffe 
gehabt zu haben ...

hmmm, schwer zu erklären.

CHH

von Robert L. (lrlr)


Lesenswert?

>Ich kann hergehen und normalverteilte Zufallszahlen erzeugen

wo liegt dann das Problem?

die Zufallszahlen liegen zwischen 0 und 1 oder ?
mit Maximum bei 0,5  oder ?

damit hast du praktischerweise schon die UHRZEIT, die wird nämlich genau 
so gespeichert...


davon rechnest du 1000 aus
sortierst sie (am besten absteigend)

dann machst du (einen thread mit) einer Endlosschleife, die alle z.b. 
sekunde (also mit Sleep(1000)) mal nachschaut wie die aktuelle uhrzeit 
ist, und ob es Einträge in der liste der Zufallszahlen gibt die älter 
sind

diese löscht tu, und führst jeweils den http request aus.. (thread 
starten, was auch immer)

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

CHH schrieb:
> Ich habe mein eigentliches Problem vermutlich zu kompliziert ausgedrückt
> - oder ich steh immer noch auf'm Schlauch.

Für die meisten Probleme gibt es einen sehr einfachen Lösungsalgorithmus 
für sich selbst.

1. formuliere das Problem
2. formuliere drei Lösungsvorschläge für das Problem
3. favorisieren einen Lösungsvorschlag
4. begründe die Wahl dieses Vorschlages

Erst dann suche dir externen Rat.

von CHH (Gast)


Lesenswert?

Robert L. schrieb:
> dann machst du (einen thread mit) einer Endlosschleife, die alle z.b.
> sekunde (also mit Sleep(1000)) mal nachschaut wie die aktuelle uhrzeit
> ist, und ob es Einträge in der liste der Zufallszahlen gibt die älter
> sind

DANKE!
Das war genau der Punkt der mir gefehlt hat ... man hätte selber drauf 
kommen können ... naja.

danke!
CHH

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.