c4master
Well-known member
- Registriert
- 1 November 2002
- Beiträge
- 1.849
- Punkte Reaktionen
- 327
Auf der Suche nach einer OHM-Rune
Ich bin aktuell auf der Suche nach einer OHM-Rune und frage mich, wie lange es in Unterkurast wohl dauern würde, diese Rune zu finden. Wer sich in der Wahrscheinlichkeitsrechnung etwas auskennt, wird darin eine Art Warteproblem erkennen. Da in LK neben einer OHM-Rune auch niedrigere Runen wie VEX oder GUL droppen können, die ich bereit wäre, zu einer OHM zu cuben, interessiert mich die Anzahl der Runs, die ich durchschnittlich benötige, um eine OHM zu finden oder sie cuben zu können.
Die harten Fakten
Ich habe zunächst noch einmal die Infos zu den Dropmustern gecheckt: Es gibt (für meinen Fall relevant) die folgenden Anzahlen an Mustern:
OHM: 5
VEX: 7
GUL: 13
jeweils aus 65536 verschiedenen möglichen Mustern auf players7.
Etwas Mathematik
Wenn ich nur OHM-Runen sammeln würde, dann wäre die Chance auf eine solche 5/65.536 und das würde erwartungsgemäß etwa alle 65.536/5 = 13.107 Runs passieren. Wenn ich nur VEX-Runen sammeln würde (deren ich ja 2 benötige für eine OHM), bräuchte ich 2 x 65536/7 = 18.725 Runs. Und würde ich nur die GUL-Runen aufsammeln, um diese zu einer OHM zu cuben, müsste ich im Durchschnitt rund 4 x 65.536/13 = 20.165 Runs durchhalten für eine OHM.
Aber wie sieht die Kombination aus? Letztlich ist es mir ja egal, ob ich eine OHM, zwei VEX oder vier GUL finde, Hauptsache am Ende kommt die OHM-Rune heraus.
Eine relativ einfach Abschätzungsidee wäre die folgende: Da ich ja zwei VEX bzw. vier GUL bräuchte, muss ich die Anzahl der entsprechenden Dropmuster halbieren bzw. vierteln. Dann kann ich die Musteranzahlen addieren und durch Division die Anzahl derRuns Kisten, die ich öffnen muss, abschätzen.
Also konkret: Summe = 5 + 7/2 + 13/4 = 11,75 [Dropmuster]
Wartezeit = 65.536/11,75 = 5.578 [Runs]
Leider kommt da noch etwas in die Quere: Es kann ja durchaus sein, dass ich ein, zwei oder gar drei GUL-Runen finde, und dann eine OHM. Dann wären die gefundenen GUL-Runen nutzlos.
Das Ganze wird nun doch kompliziert, sodass ich mir eine bessere Einschätzung durch eine Simulation erhoffe. Dazu habe ich mir mal ein kleines Python-Progrämmchen geschrieben.
Etwas Python
Hier ist der Quellcode:
Die Ergebnisse schwanken noch deutlich. Hier ein Beispiel:
Anzahl der Treffer bei 200.000 Versuchen: 25
Durchschnittliche Anzahl der Versuche bis zum nächsten Treffer: 8000.0
Treffer durch OHM: 14 VEX: 6 GUL: 5
Es kann aber auch so ausgehen:
Anzahl der Treffer bei 200.000 Versuchen: 27
Durchschnittliche Anzahl der Versuche bis zum nächsten Treffer: 7407.407407407408
Treffer durch OHM: 15 VEX: 10 GUL: 2
oder so:
Anzahl der Treffer bei 200.000 Versuchen: 24
Durchschnittliche Anzahl der Versuche bis zum nächsten Treffer: 8333.333333333334
Treffer durch OHM: 14 VEX: 9 GUL: 1
Es gab auch mal nur 20 Treffer oder 31. Und manchmal gibt es mehr Treffer durch GUL als durch VEX.
Treffer durch OHM: 8 VEX: 5 GUL: 7
Eigentlich müsste ich jetzt eine 100er-Versuchsreihe starten und so eine Art Konfidenzintervall für die Anzahl der Treffer bzw. Runs bestimmen.
Meine Simulation legt jedoch nahe, dass ich eher 8.000Runs Kisten brauchen werde für die OHM-Rune statt meinen geschätzten 5.500. Niedrigere Runen als GUL mit aufzunehmen dürfte das Ganze nur unwesentlich verbessern. In der Praxis würde ich natürlich auch die IST-, MAL- oder UM-Runen sammeln, aber einen ernsthaften Gewinn erwarte ich mir davon nicht. Außerdem fehlt meiner Simulation noch eine Kleinigkeit: Man könnte ja auch eine VEX-Rune und zwei GUL-Runen finden, um die OHM zu cuben.
Tatsächlich erhöht diese Korrektur die Trefferzahl pro 200.000 Runs auf über 30 (durchschnittlich) und demnach senkt es die Wartezeit auf unter 6667Runs Kisten (ergo: 1111 Runs). Mit anderen Worten: Die Wartezeit wird durch das Aufsammeln der kleineren Runen etwa halbiert.
Anzahl der Treffer bei 200.000 Versuchen: 35
Durchschnittliche Anzahl der Versuche bis zum nächsten Treffer: 5714.285714285715
Treffer durch OHM: 18 VEX: 10.0 GUL: 7.0
[Ich habe hier die Treffer durch VEX und GUL je um 0,5 erhöht, wenn die Situation 1 VEX + 2 GUL aufgetreten ist.]
Daher nochmal neuer Code:
Ich bin aktuell auf der Suche nach einer OHM-Rune und frage mich, wie lange es in Unterkurast wohl dauern würde, diese Rune zu finden. Wer sich in der Wahrscheinlichkeitsrechnung etwas auskennt, wird darin eine Art Warteproblem erkennen. Da in LK neben einer OHM-Rune auch niedrigere Runen wie VEX oder GUL droppen können, die ich bereit wäre, zu einer OHM zu cuben, interessiert mich die Anzahl der Runs, die ich durchschnittlich benötige, um eine OHM zu finden oder sie cuben zu können.
Die harten Fakten
Ich habe zunächst noch einmal die Infos zu den Dropmustern gecheckt: Es gibt (für meinen Fall relevant) die folgenden Anzahlen an Mustern:
OHM: 5
VEX: 7
GUL: 13
jeweils aus 65536 verschiedenen möglichen Mustern auf players7.
Etwas Mathematik
Wenn ich nur OHM-Runen sammeln würde, dann wäre die Chance auf eine solche 5/65.536 und das würde erwartungsgemäß etwa alle 65.536/5 = 13.107 Runs passieren. Wenn ich nur VEX-Runen sammeln würde (deren ich ja 2 benötige für eine OHM), bräuchte ich 2 x 65536/7 = 18.725 Runs. Und würde ich nur die GUL-Runen aufsammeln, um diese zu einer OHM zu cuben, müsste ich im Durchschnitt rund 4 x 65.536/13 = 20.165 Runs durchhalten für eine OHM.
Aber wie sieht die Kombination aus? Letztlich ist es mir ja egal, ob ich eine OHM, zwei VEX oder vier GUL finde, Hauptsache am Ende kommt die OHM-Rune heraus.
Eine relativ einfach Abschätzungsidee wäre die folgende: Da ich ja zwei VEX bzw. vier GUL bräuchte, muss ich die Anzahl der entsprechenden Dropmuster halbieren bzw. vierteln. Dann kann ich die Musteranzahlen addieren und durch Division die Anzahl der
Also konkret: Summe = 5 + 7/2 + 13/4 = 11,75 [Dropmuster]
Wartezeit = 65.536/11,75 = 5.578 [Runs]
Leider kommt da noch etwas in die Quere: Es kann ja durchaus sein, dass ich ein, zwei oder gar drei GUL-Runen finde, und dann eine OHM. Dann wären die gefundenen GUL-Runen nutzlos.
Das Ganze wird nun doch kompliziert, sodass ich mir eine bessere Einschätzung durch eine Simulation erhoffe. Dazu habe ich mir mal ein kleines Python-Progrämmchen geschrieben.
Etwas Python
Hier ist der Quellcode:
Python:
import random
rList = []
for i in range(0, 200000):
rList.append(random.randint(1, 65536))
vex = 0
gul = 0
treffer = 0
ohm_treffer = 0
vex_treffer = 0
gul_treffer = 0
for i in range (0, 200000):
if rList[i] <= 5:
treffer += 1
ohm_treffer += 1
vex = 0
gul = 0
elif rList[i] > 5 and rList[i] <= 12:
vex += 1
if vex == 2:
treffer += 1
vex_treffer += 1
vex = 0
gul = 0
elif rList[i] > 12 and rList[i] <= 25:
gul += 1
if gul == 4:
treffer += 1
gul_treffer += 1
vex = 0
gul = 0
# print(rList)
print(f"Anzahl der Treffer bei 200000 Versuchen:", treffer)
print(f"Durchschnittliche Anzahl der Versuche bis zum nächsten Treffer:", 200000/treffer)
print(f"Treffer durch OHM:", ohm_treffer, "VEX:", vex_treffer, "GUL:", gul_treffer)
Die Ergebnisse schwanken noch deutlich. Hier ein Beispiel:
Anzahl der Treffer bei 200.000 Versuchen: 25
Durchschnittliche Anzahl der Versuche bis zum nächsten Treffer: 8000.0
Treffer durch OHM: 14 VEX: 6 GUL: 5
Es kann aber auch so ausgehen:
Anzahl der Treffer bei 200.000 Versuchen: 27
Durchschnittliche Anzahl der Versuche bis zum nächsten Treffer: 7407.407407407408
Treffer durch OHM: 15 VEX: 10 GUL: 2
oder so:
Anzahl der Treffer bei 200.000 Versuchen: 24
Durchschnittliche Anzahl der Versuche bis zum nächsten Treffer: 8333.333333333334
Treffer durch OHM: 14 VEX: 9 GUL: 1
Es gab auch mal nur 20 Treffer oder 31. Und manchmal gibt es mehr Treffer durch GUL als durch VEX.
Treffer durch OHM: 8 VEX: 5 GUL: 7
Eigentlich müsste ich jetzt eine 100er-Versuchsreihe starten und so eine Art Konfidenzintervall für die Anzahl der Treffer bzw. Runs bestimmen.
Meine Simulation legt jedoch nahe, dass ich eher 8.000
Tatsächlich erhöht diese Korrektur die Trefferzahl pro 200.000 Runs auf über 30 (durchschnittlich) und demnach senkt es die Wartezeit auf unter 6667
Anzahl der Treffer bei 200.000 Versuchen: 35
Durchschnittliche Anzahl der Versuche bis zum nächsten Treffer: 5714.285714285715
Treffer durch OHM: 18 VEX: 10.0 GUL: 7.0
[Ich habe hier die Treffer durch VEX und GUL je um 0,5 erhöht, wenn die Situation 1 VEX + 2 GUL aufgetreten ist.]
Daher nochmal neuer Code:
Python:
import random
rList = []
for i in range(0, 200000):
rList.append(random.randint(1, 65536))
vex = 0
gul = 0
treffer = 0
ohm_treffer = 0
vex_treffer = 0
gul_treffer = 0
for i in range (0, 200000):
if rList[i] <= 5:
treffer += 1
ohm_treffer += 1
vex = 0
gul = 0
elif rList[i] > 5 and rList[i] <= 12:
vex += 1
if vex == 2:
treffer += 1
vex_treffer += 1
vex = 0
gul = 0
elif gul >= 2:
treffer += 1
vex_treffer += 0.5
gul_treffer += 0.5
vex = 0
gul = 0
elif rList[i] > 12 and rList[i] <= 25:
gul += 1
if gul == 4:
treffer += 1
gul_treffer += 1
vex = 0
gul = 0
elif gul >= 2 and vex == 1:
treffer += 1
gul_treffer += 0.5
vex_treffer += 0.5
vex = 0
gul = 0
# print(rList)
print(f"Anzahl der Treffer bei 200000 Versuchen:", treffer)
print(f"Durchschnittliche Anzahl der Versuche bis zum nächsten Treffer:", 200000/treffer)
print(f"Treffer durch OHM:", ohm_treffer, "VEX:", vex_treffer, "GUL:", gul_treffer)
Zuletzt bearbeitet: