PHP Wahrscheinlichkeit bestimmen und dementsprechend Zahlen generieren?

...komplette Frage anzeigen

3 Antworten

Wenn du eine Zahlen mit bestimmten Häufigkeiten ziehen lassen willst, so brauchst du weder dein shuffle, noch dein Array:

Erzeuge eine Zufallszahl im Bereich 1 bis 100.

Ist diese Zahl zwischen 1 und 5 -> "4"
Ist deine Zahl zwischen 6 und 20 ->"3"
Ist diese Zahl zwischen 21 und 50 -> "2"
Ist diese Zahl zwischen 51 und 100 -> "1"

Damit hast du deine Wahrscheinlichkeiten so abgebildet, wie du es angegeben hast. Mischen ist nicht nötig, da du ohnehin eine zahl zufällig auswählst!

Da wäre erstmal die Frage was ist das für eine Ziehung ?

Eine mit zurücklegen der Kugel (Zahl) oder eine wo die Kugel rausgenommen wird ?

Generell kannst Du da natürlich mit einer anderen Formel arbeiten , das ganze runterbrechen auf 0 bis 1  und dann einfach abschnitte machen , die % angegeben werden . Mit der zufallszahl dann entsprechend gucken in welchen Abschnitt das fällt.

Hängt jetzt aber echt davon ab, ob es mit zurücklegen oder nicht ist .

mrGalileo 04.12.2017, 14:22

Deine Antwort hat mich etwas verwirrt.

Also man kann in meinem Spiel "Reisen" und unterwegs etwas finden.

Und die Item ID, die auch in der Datenbank sowie in dem Array gespeichert ist, wird von dem Array wie oben beschrieben ausgewürfelt mit shuffle().

0
RakonDark 04.12.2017, 14:23
@mrGalileo

Also kann man eine ID nur einmal benutzen oder mehrmals ? Heist das 5 mal gibts das item , nach benutzung gibt es das nur noch 4 mal


0
mrGalileo 04.12.2017, 14:25
@mrGalileo

Nein, da ändert sich nichts.

Und da ich das jetzt schon so oft im Quelltext habe will ich dass die Prozentzahl, wie oft die ID vorkommen soll, in der Datenbank steht und mit einer klugen Funktion, ähnlich wie ich es schon habe, die entsprechende ID in einen String generiert sodass ich es wie gehabt auswürfeln kann. Ohne jedesmal 100 versch. Zahlen eintippen zu müssen

0
RakonDark 04.12.2017, 14:30
@mrGalileo

noch sehe ich hier nichtmal einen code . ich würde das problem mathematisch regeln . weniger code , weniger aufwand . geb ich nur einfach die zahlen an so wie du schon die warscheinlichkeit hast .
simples array (4=>5,3=>15,....)
dann eine summenfunktion damit ich gerade die gesammtzahl habe .
aus der gesamt zahl ziehe ich eine zahl , z.b. wenn noch 90 elemte vorhanden sind , kann ich von 1 bis 90 ziehen .
dann eine einfache schleife durch die elemente und diese addieren , befinde ich mich in dem bereich gebe ich die zahl zurück und reduzier das element um 1 .

wenn aber die warscheinlichkeit immer bei 100 elementen liegt, brauch ich die summenformel nicht und auch keine reduktion


0
mrGalileo 04.12.2017, 14:36
@RakonDark

Sorry bin am Handy, daher kein Code.

Habs außerdem schon.

Die Wahrscheinlichkeit etwas zu ziehen liegt bei 100%

Aber einen bestimmten Gegenstand zu ziehen nur wie beschrieben weniger.

Gegensrand 1 hat die Wahrscheinlichkeit 50% usw.. wie oben beschrieben

0
RakonDark 04.12.2017, 14:42
@mrGalileo

na wenn du mit str-pad zurecht kommst , ist doch fein . ich würde mir da eine eigene funktion schreiben und die wertetabelle als array  übergeben und mir den zufall mittels RAND funktion ausgeben lassen , da brauch ich keine shuffle funktion oder mischen  . aber wie bekanntlich , viele wege führen ans ziel .

Viel erfolg .

0

Was möchtest Du wissen?