Wahrscheinlichkeitsabfrage

Neue Frage »

Obsidia Auf diesen Beitrag antworten »
Wahrscheinlichkeitsabfrage
Meine Frage:
Hallo, habe folgendes Problem: ich habe 5 dinge, die eine bestimmte droprate haben (40, 30 , 20, 10 und 5 %).

Ein php-script soll einen dieser gegenstände so auswählen, das gegenstandeigene droprate berücksichtigt wird.

Meine Ideen:
mein idee war bisher, dass ich die einzelnen dropraten summiere und daraus sich die hundert prozent ergeben. nun berechne ich per dreisatz für jede droprate den prozentuallen anteil von der summe der fünf dropraten. für 40 wären das beispielsweise um die 38 %. dann soll das script (einen imaginären würfel würfeln mit 105 seiten und wenn er dabei eine zahl zwischen 1 und 38 würfelt, bekomme ich den gegenstand mit der 40er droprate.

ist das soweit korrekt oder bin ich da ganz auf dem holzweg?

lg
HAL 9000 Auf diesen Beitrag antworten »

Unter "drop rate" ist wohl sowas wie Ausfallrate zu verstehen? Obwohl da eher der englische Begriff "failure rate" üblich ist - aber wenn ich so ein wenig google, dann bist du wohl so ein Pixelkämpfer vor dem Herrn. Augenzwinkern

Nun, unter der Prämisse, dass es genau einen der aufgezählten Gegenstände erwischen soll, dann ist tatsächlich die proportionale Wahl der Auswahlwahrscheinlichkeit für Gegenstand Nr. zur entsprechenden Ausfallrate die richtige Wahl, also wie du geschrieben hast

.
obsidia Auf diesen Beitrag antworten »

ja bin ein pixelkämpfer^^ wir entwickeln gerade ein onlinegame und brauchen eine vernünftige dropformel für die ganzen gegenstände.

wärst du so nett und würdest mal mit deiner formel eine beispielrechnung machen? verstehe noch nicht genau wie sie anzuwenden ist.

besten gruß
HAL 9000 Auf diesen Beitrag antworten »

Das ist nur die formelmäßige Umsetzung dessen, was du ohnehin schon getan hast. Z.B. für Gegenstand 1 aus deiner Liste

.

Du kannst das also als Bestätigung für deine Überlegungen auffassen. Augenzwinkern
obsidia Auf diesen Beitrag antworten »

okay das freut mich. zumindest weiß ich jetzt, dass ich nicht alles schulische vergessen habe^^. aber ist die zweite überlegung auch soweit richtig?

sprich das der, in diesem fall 105seitige würfel, der ja vom script simuliert wird, wirklich die dropraten der fünf genannten gegenstände berücksichtigt?
obsidia Auf diesen Beitrag antworten »

vielleicht nochmal genauer:

hatte es so gedacht, dass die jeweiligen ergebnisse für die einzelnen dropraten als intervall dargestellt werden. für den 40er in diesem fall das intervall 1 bis 38. für den 30er kommt ungefähr 28 prozent raus, das hieße er hätte ein intervall von 1 bis 28, welcher jedoch auf das vorherige intervall aufsummiert wird, also interval 39 bis 66. das ganze wird fortgeführt bis die 105, also das ende des intervalls erreicht ist.

wenn der imaginäre würfel nun beispielsweise eine 42 würfelt, wäre dann die bedingung der 30er droprate erfüllt?

ich weiß kompliziert Hammer ^^
 
 
HAL 9000 Auf diesen Beitrag antworten »

Zitat:
Original von obsidia
ich weiß kompliziert Hammer

Eigentlich nicht. Augenzwinkern

Ja, so kannst du es machen: du sprichst da von der Inversionsmethode, einem durchaus gängigen Verfahren zur Simulation derart diskreter Verteilungen, wie du sie vorliegen hast. Freude
obsidia Auf diesen Beitrag antworten »

okay super. jetzt die letzte frage^^:

im grunde muss ich das ganze für bis zu 35 gegenstände gleichzeitig berechnen. das heißt, es müsste ein großes intervall mit 35 darinliegenden einzelnen intervallen für jeden gegenstand als ergebnis herauskommen. ist sowas möglich?

müsste man das irgendwie mit 35 verschiedenen variablen rechnen, die jeweils für eine bestimmte droprate stehen?
HAL 9000 Auf diesen Beitrag antworten »

Zitat:
Original von obsidia
im grunde muss ich das ganze für bis zu 35 gegenstände gleichzeitig berechnen. das heißt, es müsste ein großes intervall mit 35 darinliegenden einzelnen intervallen für jeden gegenstand als ergebnis herauskommen. ist sowas möglich?

Ja klar - warum nicht?

An sich baust du dir ein Feld der kumulierten Wahrscheinlichkeiten auf, in deinem Beispiel oben

.

Dann würfelst du eine stetig [0,1]-gleichverteilte Zufallszahl aus - sowas bieten ja die meisten Programmiersprachen (genauer gesagt: zugehörige Bibliotheken), sicher auch dein php-script, obwohl ich damit nicht vertraut bin - irgendwas mit random() etc.

Und anschließend "hangelst" du dich die Feldelemente hoch, solange das Feldelement kleiner als dein ausgewürfelter Wert ist. Und das letzte Feldelement, wo das noch zutrifft, entspricht vom Index her deinem auszuwählenden Gegenstand.


Diese Methode ist bei einer großen Gegenstandsanzahl nicht sehr effizient - man kann das Feld auch "binär" durchsuchen. Oder ganz andere Methoden wie etwa die sogenannte "Alias-Methode" zur Simulation solcher diskreten Zufallsverteilungen nehmen - aber das vertiefen wir besser erst dann, wenn du wirklich Performance-Probleme mit der einfachen Methode hast. Augenzwinkern
obsidia Auf diesen Beitrag antworten »

hihi okay. ich danke dir vielmals. vielleicht melde ich mich nochmal, falls es nicht klappen sollte.

besten gruß obsi
Neue Frage »
Antworten »



Verwandte Themen