BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren! |
 |

01-05-2011, 20:47
|
|
Wannabe
Registrierter Benutzer
|
|
Registriert seit: Apr 2001
Beiträge: 135
|
|
Gewichteter Zufallswert nähe Mittelwert
Hallo,
ich stehe gerade total auf dem Schlauch und hoffe, ihr könnt mir ein wenig mit Denkansätzen/Ideen helfen.
Ich habe einen MIN-Wert, einen MAX-Wert und einen Mittelwert.
Nun möchte ich eine Zufallszahl zwischen MIN und MAX generieren.
Das ist an sich kein Problem.
Mein Problem ist jetzt, dass ich möchte, das die Wahrscheinlichkeit höher ist, dass der Zufallswert irgendwo rund um den Mittelwert variiert.
Der Mittelwert ist dabei NICHT einfach die Mitte zwischen MIN und MAX, sondern ein errechneter Wert aus mehreren Datensätzen.
Also Beispielsweise:
Min: 1
Max: 10
Mittelwert: 6
Als Ergebnis soll nun öfter ein Wert um 6 (also vielleicht 4 - 8) heraus kommen, als beispielsweise die 1, 2 oder 10.
Diese Zahlen sind natürlich nur Beispielwerte.
Die tatsächlichen Zahlen mit denen ich arbeite, liegen im Dezimalbereich.
Ich dachte mir, es gibt doch sicherlich, vielleicht aus dem Bereich der Wahrscheinlichkeitsrechnung, der Statistik etc., bereits ausgeklügelte Formeln, die genau dieses Problem behandeln, wurde aber bei meiner Suche nicht fündig.
Hat von euch jemand eine Idee, wie ich mein Problem angehen könnte?
Ein kleiner Denkansatz oder vielleicht eine tatsächlich existierende Formel aus der Mathematik?
Geändert von Wannabe (01-05-2011 um 21:43 Uhr)
|

01-05-2011, 21:10
|
|
mephisto111
Registrierter Benutzer
|
|
Registriert seit: Nov 2003
Beiträge: 41
|
|
Dreiecksverteilung?
Hallo Wannabe,
Du koenntest z.B. die Zufallszahl gemaess einer
Dreiecksverteilung generieren:
Dreiecksverteilung ? Wikipedia
Durch welche Gesichtspunkte sind die in Deinem
Posting angegebenen Rahmenbedingungen motiviert
worden? Vielleicht laesst sich die zugrunde
liegende Verteilung (oder Verteilungsfamilie)
dann noch geschickter spezifizieren.
|

01-05-2011, 21:42
|
|
Wannabe
Registrierter Benutzer
|
|
Registriert seit: Apr 2001
Beiträge: 135
|
|
Danke mephisto, das klingt schon sehr nach etwas, das mir hier weiterhelfen könnte.
Mir ist gerade aufgefallen, im ersten Posting habe ich von "Millionen-Werten" geschrieben.
Das sind natürlich nicht Millionen, sondern niedrige Dezimal-Werte. Sorry.
Also ganz konkret geht es um folgendes:
Der MIN-Wert stellt den schlechtesten Wert dar, den ein Spieler (unter allen Spielern) in einer Kategorie erreicht hat.
Der MAX-Wert entsprechend den besten Wert.
Der Mittelwert ist der Durchschnittswert, den ALLE Spieler erreicht haben.
Beispiel "Fußball" und "Zweikämpfe":
Spieler 1: 0,15 Zweikämpfe pro Minute
Spieler 2: 0,03 Zweikämpfe pro Minute.
Spieler 3: 0,25 Zweikämpfe pro Minute.
Spieler 4: 0,19 Zweikämpfe pro Minute.
Dann habe ich MIN 0,03 und MAX 0,25.
Und im Mittel hat ein Spieler dann 0,155 Zweikämpfe pro Minute.
Für Spieler 5 ergibt sich damit, dass er wahrscheinlich zwischen 0,03 und 0,25 Zweikämpfe, sehr wahrscheinlich aber sogar irgendwas um die 0,155 Zweikämpfe pro Minute haben wird.
Muss nicht sein, ist natürlich reine Theorie, aber die Wahrscheinlichkeit ist größer, als das er vielleicht nur 0,04 Zweikämpfe oder so haben wird.
Die MIN-, MAX- und Mittelwerte ergeben sich dabei nicht aus 4 Spielern, sondern aus allen Spielern einer Liga.
Der Erwartungswert liegt bei (MIN + Mittelwert + MAX) / 3, aber da fehlt mir halt der Zufall und die Möglichkeit, dass es auch sein könnte, das MIN oder MAX bei heraus kommen könnten ;-)
Geändert von Wannabe (01-05-2011 um 21:50 Uhr)
|

01-05-2011, 22:20
|
|
mephisto111
Registrierter Benutzer
|
|
Registriert seit: Nov 2003
Beiträge: 41
|
|
Hallo Wannabe,
besitzen die Spieler unterschiedliche
"Spielstaerken" und haengt die "Anzahl
der Zweikaempfe" pro Minute auch von der
"Spielstaerke" eines Spielers ab? Wenn ja,
muesste Deine Ueberlegung verfeinert werden.
|

01-05-2011, 22:30
|
|
Wannabe
Registrierter Benutzer
|
|
Registriert seit: Apr 2001
Beiträge: 135
|
|
Nein, Spielerstärken gibt es nicht.
Falls der Eindruck entstanden sein sollte:
Es geht NICHT um die Entwicklung des 1532sten Fußballmanagers oder so.
Ich spiele einfach nur ein wenig mit Sport-Statistiken herum.
Es geht also tatsächlich einfach nur darum, diesen gewichteten Zufallswert für Spieler 5 zu erstellen.
|

04-05-2011, 10:42
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.187
|
|
Bleiben wir mal bei deinem Beispiel:
Zitat:
Also Beispielsweise:
Min: 1
Max: 10
Mittelwert: 6
Als Ergebnis soll nun öfter ein Wert um 6 (also vielleicht 4 - 8) heraus kommen, als beispielsweise die 1, 2 oder 10.
Diese Zahlen sind natürlich nur Beispielwerte.
Die tatsächlichen Zahlen mit denen ich arbeite, liegen im Dezimalbereich
|
Wie viel mal häufiger sollen denn Zahlen im Bereich 4-8 im Vergleich zu den anderen vorkommen?
Ist ja letztendlich nur eine weitere Zufallsgenerierung mit
PHP-Code:
$r=rand(1,$häufigkeit)
und einer entsprechenden if abfrage:
PHP-Code:
if($r!=1) $wert = rand(1,10); else $wert = rand(4,8);
|

04-05-2011, 21:33
|
|
mephisto111
Registrierter Benutzer
|
|
Registriert seit: Nov 2003
Beiträge: 41
|
|
Da das eigentliche Problem darin bestand einen Zufallsmechanismus
zu beschreiben, der auch im "Dezimalbereich" funktioniert, hier eine kleine
Ergänzung zu dem Posting von Tobiaz. Der Nachteil seiner Methode ist, dass
mit ihr nur Verteilungen realisiert werden können, die (ein idealer
Zufallszahlengenerator vorausgesetzt) Mischungen von zwei diskreten
Gleichverteilungen sind.
Hier ein Rezept, mit dem man per PHP Zufallszahlen mit einer (praktisch)
beliebigen Verteilung erzeugen kann:
Schritt 1: Größte Zahl ermitteln, die von "rand" akzeptiert wird:
PHP-Code:
$a=getrandmax();
Schritt 2: Eine "zufällige" Zahl zwischen 0 und $a erzeugen:
Schritt 3: Transformation dieser Zahl auf das Einheitsintervall:
Schritt 4: $u lässt sich näherungsweise als Realisierung einer auf dem
Einheitsintervall gleichmässig verteilten Zufallsvariablen auffassen.
Wenn man auf diesen Wert die "Inverse" F_inv der gewünschten
Verteilungsfunktion F anwendet, erhält man einen Wert, der als Realisierung
einer gemäß F verteilten Zufallsvariablen aufgefasst werden kann:
Weitere Einzelheiten zu Schritt 4 vgl.
Inversionsmethode ? Wikipedia
Geändert von mephisto111 (04-05-2011 um 21:36 Uhr)
|

08-05-2011, 15:39
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.187
|
|
Zitat:
Da das eigentliche Problem darin bestand einen Zufallsmechanismus
zu beschreiben, der auch im "Dezimalbereich" funktioniert,
|
Echt? ich dachte eigentlich das der TO das schon längst realisiert hatte, schließlich konnte er sein Problem entsprechend vereinfachen...
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|