Hallo liebe
-Spieler,
Das hier ist keine Projektvorstellung in dem Sinne, dass ich etwas Gebautes von mir vorstelle. Stattdessen habe ich es mir zur Aufgabe gemacht, die exakte Wahrscheinlichkeit zu berechnen, mit der man Reparatur angelt.
Hier also erstmal das Ergebnis mit weiteren spannenden Statistiken:
Hier stelle ich meinen gesamten Rechenweg vor und erkläre, wie ich darauf gekommen bin:
Bei Fragen und anderen Anliegen einfach mich anschreiben
maua1

Das hier ist keine Projektvorstellung in dem Sinne, dass ich etwas Gebautes von mir vorstelle. Stattdessen habe ich es mir zur Aufgabe gemacht, die exakte Wahrscheinlichkeit zu berechnen, mit der man Reparatur angelt.
Hier also erstmal das Ergebnis mit weiteren spannenden Statistiken:
Hinweis: Alle Daten gehen davon aus, dass mit der Verzauberung Glück des Meeres III geangelt wird. Außerdem habe ich für alle Berechnungen Brüche verwendet und keine Rundungswerte. Erst ganz zum Schluss habe ich die Ergebnisse gerundet. Außerdem sind alles nur Durchschnittswerte. Man kann also schon beim ersten Angelversuch Glück haben, oder aber erst nach 10.000 Versuchen.
Die Wahrscheinlichkeit, ein Reparatur-Buch zu angeln, beträgt 1 zu 1750,1 (0,057%). Angelt man ein Verzaubertes Buch, so beträgt die Wahrscheinlichkeit 1 zu 32,7 (3,1%).
Die Wahrscheinlichkeit, ein reines Reparatur-Buch zu angeln, beträgt 1 zu 9684,7 (0,01%). Angelt man ein Verzaubertes Buch, so beträgt die Wahrscheinlichkeit 1 zu 181,2 (0,6%). Angelt man ein Reparatur-Buch, so beträgt die Wahrscheinlichkeit, dass es keine weiteren Verzauberungen hat, 1 zu 5,53 (18,07%).
Die Wahrscheinlichkeit, einen Angelschatz zu angeln, beträgt exakt 1 zu 98 (1,02%).
Die Wahrscheinlichkeit, ein Verzaubertes Buch zu angeln, beträgt 1 zu 53,45 (1,87%).
Die durchschnittliche Anzahl von Verzauberungen pro Buch beträgt 1,887.
Die Wahrscheinlichkeit, ein Reparatur-Buch zu angeln, beträgt 1 zu 1750,1 (0,057%). Angelt man ein Verzaubertes Buch, so beträgt die Wahrscheinlichkeit 1 zu 32,7 (3,1%).
Die Wahrscheinlichkeit, ein reines Reparatur-Buch zu angeln, beträgt 1 zu 9684,7 (0,01%). Angelt man ein Verzaubertes Buch, so beträgt die Wahrscheinlichkeit 1 zu 181,2 (0,6%). Angelt man ein Reparatur-Buch, so beträgt die Wahrscheinlichkeit, dass es keine weiteren Verzauberungen hat, 1 zu 5,53 (18,07%).
Die Wahrscheinlichkeit, einen Angelschatz zu angeln, beträgt exakt 1 zu 98 (1,02%).
Die Wahrscheinlichkeit, ein Verzaubertes Buch zu angeln, beträgt 1 zu 53,45 (1,87%).
Die durchschnittliche Anzahl von Verzauberungen pro Buch beträgt 1,887.
Anzahl von Verzauberungen | Wahrscheinlichkeit für genau diese Anzahl (Verhältnis) | Wahrscheinlichkeit für genau diese Anzahl (Prozentzahl) | Wahrscheinlichkeit für mindestens diese Anzahl (Verhältnis) | Wahrscheinlichkeit für mindestens diese Anzahl (Prozentzahl) |
---|---|---|---|---|
1 | 1 zu 2,78 | 36% | 1 zu 1 | 100% |
2 | 1 zu 2,32 | 43,1% | 1 zu 1,56 | 64% |
3 | 1 zu 5,76 | 17,4% | 1 zu 4,79 | 20,9% |
4 | 1 zu 31,2 | 3,2% | 1 zu 28,4 | 3,52% |
5 | 1 zu 334,5 | 0,3% | 1 zu 317,53 | 0,31% |
6 | 1 zu 6477,2 | 0,015% | 1 zu 6265,8 | 0,016% |
Verzauberung | Wahrscheinlichkeit, diese Verzauberung zu angeln (Verhältnis) | Wahrscheinlichkeit, diese Verzauberung zu angeln (Prozentzahl) | Wahrscheinlichkeit dieser Verzauberung auf einem geangelten Verzauberten Buch (Verhältnis) | Wahrscheinlichkeit dieser Verzauberung auf einem geangelten Verzauberten Buch (Prozentzahl) |
---|---|---|---|---|
Atmung II | 1 zu 8320,6 | 0,012% | 1 zu 155,7 | 0,6% |
Atmung III | 1 zu 2201,8 | 0,045% | 1 zu 41,2 | 2,4% |
Bann III | 1 zu 8317,4 | 0,012% | 1 zu 155,6 | 0,6% |
Bann IV | 1 zu 902,5 | 0,111% | 1 zu 16,9 | 5,9% |
Behutsamkeit | 1 zu 3500,2 | 0,029% | 1 zu 65,5 | 1,5% |
Dichte III | 1 zu 8317,4 | 0,012% | 1 zu 155,6 | 0,6% |
Dichte IV | 1 zu 902,5 | 0,111% | 1 zu 16,9 | 5,9% |
Dornen I | 1 zu 16566,6 | 0,006% | 1 zu 309,9 | 0,3% |
Dornen II | 1 zu 4380,6 | 0,023% | 1 zu 82 | 1,2% |
Durchbruch II | 1 zu 2682,5 | 0,037% | 1 zu 50,2 | 2,0% |
Durchbruch III | 1 zu 8438,9 | 0,012% | 1 zu 157,9 | 0,6% |
Durchschuss III | 1 zu 974,3 | 0,103% | 1 zu 18,2 | 5,5% |
Durchschuss IV | 1 zu 591,9 | 0,169% | 1 zu 11,1 | 9% |
Effizienz III | 1 zu 963,6 | 0,104% | 1 zu 18 | 5,5% |
Effizienz IV | 1 zu 584,6 | 0,171% | 1 zu 10,9 | 9,1% |
Eisläufer II | 1 zu 1760,4 | 0,057% | 1 zu 32,9 | 3% |
Explosionsschutz III | 1 zu 19741,5 | 0,005% | 1 zu 369,3 | 0,3% |
Explosionsschutz IV | 1 zu 2103,7 | 0,048% | 1 zu 39,4 | 2,5% |
Federfall IV | 1 zu 3375 | 0,03% | 1 zu 63,1 | 1,6% |
Feuerschutz III | 1 zu 858,9 | 0,116% | 1 zu 16,1 | 6,2% |
Feuerschutz IV | 1 zu 6632,8 | 0,015% | 1 zu 124,1 | 0,8% |
Flamme | 1 zu 1741,1 | 0,057% | 1 zu 32,6 | 3,1% |
Fluch der Bindung | 1 zu 3464,5 | 0,029% | 1 zu 64,8 | 1,5% |
Fluch des Verschwindens | 1 zu 3464,5 | 0,029% | 1 zu 64,8 | 1,5% |
Glück II | 1 zu 2315,8 | 0,043% | 1 zu 43,3 | 2,3% |
Glück III | 1 zu 7163,7 | 0,014% | 1 zu 134 | 0,7% |
Glück des Meeres II | 1 zu 2304,2 | 0,043% | 1 zu 43,1 | 2,3% |
Glück des Meeres III | 1 zu 7123,8 | 0,014% | 1 zu 133,3 | 0,8% |
Haltbarkeit III | 1 zu 707,5 | 0,141% | 1 zu 13,2 | 7,6% |
Harpune IV | 1 zu 2304,2 | 0,043% | 1 zu 43,1 | 2,3% |
Harpune V | 1 zu 7123,8 | 0,014% | 1 zu 133,3 | 0,8% |
Köder II | 1 zu 2304,2 | 0,043% | 1 zu 43,1 | 2,3% |
Köder III | 1 zu 7123,8 | 0,014% | 1 zu 133,3 | 0,8% |
Mehrfachschuss | 1 zu 1841 | 0,054% | 1 zu 34,4 | 2,9% |
Nemesis der Gliederfüßer III | 1 zu 8317,4 | 0,012% | 1 zu 155,6 | 0,6% |
Nemesis der Gliederfüßer IV | 1 zu 902,5 | 0,111% | 1 zu 16,9 | 5,9% |
Plünderung II | 1 zu 2304,2 | 0,043% | 1 zu 43,1 | 2,3% |
Plünderung III | 1 zu 7123,8 | 0,014% | 1 zu 133,3 | 0,8% |
Reparatur | 1 zu 1750,1 | 0,057% | 1 zu 32,7 | 3,1% |
Reparatur (rein) | 1 zu 9684,7 | 0,01% | 1 zu 181,2 | 0,6% |
Rückstoß II | 1 zu 707,5 | 0,141% | 1 zu 13,2 | 7,6% |
Schärfe III | 1 zu 459,3 | 0,218% | 1 zu 8,6 | 11,6% |
Schärfe IV | 1 zu 3579,4 | 0,028% | 1 zu 67 | 1,5% |
Schlag I | 1 zu 2996,9 | 0,033% | 1 zu 56,1 | 1,8% |
Schlag II | 1 zu 4154,9 | 0,024% | 1 zu 77,7 | 1,3% |
Schnellladen I | 1 zu 1216,9 | 0,082% | 1 zu 22,8 | 4,4% |
Schnellladen II | 1 zu 1690,2 | 0,059% | 1 zu 31,6 | 3,2% |
Schusssicher IV | 1 zu 29262,3 | 0,003% | 1 zu 547,4 | 0,2% |
Schutz III | 1 zu 429,5 | 0,233% | 1 zu 8 | 12,4% |
Schutz IV | 1 zu 3316,4 | 0,03% | 1 zu 62 | 1,6% |
Schwungkraft III | 1 zu 1741,1 | 0,057% | 1 zu 32,6 | 3,1% |
Stärke III | 1 zu 963,6 | 0,104% | 1 zu 18 | 5,5% |
Stärke IV | 1 zu 584,6 | 0,171% | 1 zu 10,9 | 9,1% |
Treue III | 1 zu 707,5 | 0,141% | 1 zu 13,2 | 7,6% |
Unendlichkeit | 1 zu 3500,2 | 0,029% | 1 zu 65,5 | 1,5% |
Verbrennung I | 1 zu 8320,6 | 0,012% | 1 zu 155,7 | 0,6% |
Verbrennung II | 1 zu 2201,8 | 0,045% | 1 zu 41,2 | 2,4% |
Wasseraffinität | 1 zu 1741,1 | 0,057% | 1 zu 32,6 | 3,1% |
Wasserläufer II | 1 zu 8397,7 | 0,012% | 1 zu 157,1 | 0,6% |
Wasserläufer III | 1 zu 2225,5 | 0,045% | 1 zu 41,6 | 2,4% |
Hier stelle ich meinen gesamten Rechenweg vor und erkläre, wie ich darauf gekommen bin:
Das Ganze ist wahrscheinlich viel komplizierter, als ihr euch vorstellen könnt, denn es gibt einige Besonderheiten, die das ganze extrem kompliziert machen. Das Thema ist ungefähr so lang und so komplex wie ein Beitrag im Dev-Blog, also viel Spaß beim Lesen 
Jetzt wisst ihr ungefähr, wie die Verzauberungen von Verzauberten Büchern vergeben werden und wie ich die Wahrscheinlichkeit für Reparatur und die anderen Dinge berechnet habe. Solltet ihr nicht alles verstanden haben, dann ist das natürlich nicht schlimm, denn dieses Thema ist nunmal sehr komplex und bevor ich diesen Beitrag geschrieben habe, wusste es ja auch niemand

Zuerst brauche ich die Wahrscheinlichkeit für ein Verzaubertes Buch. Die Wahrscheinlichkeit aus dem Minecraft-Wiki kann ich leider nicht verwenden, es gibt ja noch Angelschätze und dessen Einfluss muss ich erstmal herausfinden.
Die einzige mir bekannte Möglichkeit, die Items beim Angeln zu ändern, sind Datenpakete. Durch Datenpakete können viele Dinge im Spiel geändert werden, unter Anderem die Items, welche man beim Angeln erhalten kann, und dessen Wahrscheinlichkeiten. Durch zwei Angelstatistiken (hier und hier) sehe ich, dass es große Abweichungen zwischen Angelschätzen und den anderen Schätzen gibt. Angelschätze haben demnach eine Wahrscheinlichkeit von rund 1,01% bzw. 1,07%, während die Wahrscheinlichkeit der anderen Schätze in den beiden Statistiken zwischen 1,63% und 2% liegt. Eine weitere wichtige Information liefert das UW-Wiki unter Angelschatz. Demnach wird die Wahrscheinlichkeit für Angelschätze nicht durch die Verzauberung Glück des Meeres beeinflusst.
Daraus schlussfolgere ich, dass Angelschätze neben Fischen, Schätzen und Müll eine eigene Gruppe bilden. Bei jedem Angelvorgang wird zuerst eine Gruppe ausgewählt (Fisch, Schatz, Müll, Angelschatz) und dann ein Item aus dieser Kategorie. Dabei haben die Gruppen und Items alle eine bestimmte Gewichtung. Ohne Glück des Meeres ist die Gewichtung bei Fischen 85, bei Schätzen 5 und bei Müll 10. Pro Stufe Glück des Meeres ändert sich diese Gewichtung jeweils um einen bestimmten Wert. Weil das bei Angelschätzen nicht der Fall ist, müssen diese eine eigene Gruppe bilden. Bei Glück des Meeres III ist die Gewichtung bei Fischen 82, bei Schätzen 11 und bei Müll 4. Die Gewichtung der Angelschätze beträgt dabei 1 und ändert sich nicht durch Glück des Meeres. Diese Gewichtung kann ich zwar nicht überprüfen, jedoch passt die daraus geschlussfolgerte Wahrscheinlichkeit der Angelschätze von 1/98=1,02% perfekt zu den Ergebnissen der zuvor genannten Statistiken.
Damit habe ich also nebenbei auch die exakte Wahrscheinlichkeit für Angelschätze ermittelt. Eigentlich brauche ich aber die Wahrscheinlichkeit für Verzauberte Bücher. Nun weiß ich, die Wahrscheinlichkeit für die Kategorie Schatz beträgt 11/98=11,22% (gäbe es keine Angelschätze, würde sie bei 11/97 liegen) und da die Gewichtung aller 6 Items innerhalb dieser Kategorie 1 beträgt, beträgt die Wahrscheinlichkeit eines Verzauberten Buches darin 1/6. Zusammengerechnet ergibt das eine Wahrscheinlichkeit von 11/98 • 1/6 = 11/588 = 1,87% für ein Verzaubertes Buch beim Angeln mit Glück des Meeres III. Die Wahrscheinlichkeit der anderen Schätze ist übrigens dieselbe, Angelschätze sind dabei wie gesagt ausgenommen.
Noch eine Info dazu, wie ich darauf gekommen bin, dass das etwas mit Datenpaketen zu tun hat. Angefangen hat alles damit, dass ich mich ein wenig mit Datenpaketen auseinandergesetzt habe, weil ich Lust dazu hatte. Da habe ich unter Anderem gesehen, dass auch die Items beim Angeln geändert werden können und ich habe einfach mal versucht zu ermitteln, wo die Angelschätze dort am besten hineinpassen, was auch geklappt hat. Erst dann ist mir die Idee gekommen, dass es jetzt ja vielleicht möglich wäre, die genaue Wahrscheinlichkeit für Reparatur herauszufinden. Dass es noch viel komplizierter werden würde, konnte ich da noch nicht ahnen.
Die einzige mir bekannte Möglichkeit, die Items beim Angeln zu ändern, sind Datenpakete. Durch Datenpakete können viele Dinge im Spiel geändert werden, unter Anderem die Items, welche man beim Angeln erhalten kann, und dessen Wahrscheinlichkeiten. Durch zwei Angelstatistiken (hier und hier) sehe ich, dass es große Abweichungen zwischen Angelschätzen und den anderen Schätzen gibt. Angelschätze haben demnach eine Wahrscheinlichkeit von rund 1,01% bzw. 1,07%, während die Wahrscheinlichkeit der anderen Schätze in den beiden Statistiken zwischen 1,63% und 2% liegt. Eine weitere wichtige Information liefert das UW-Wiki unter Angelschatz. Demnach wird die Wahrscheinlichkeit für Angelschätze nicht durch die Verzauberung Glück des Meeres beeinflusst.
Daraus schlussfolgere ich, dass Angelschätze neben Fischen, Schätzen und Müll eine eigene Gruppe bilden. Bei jedem Angelvorgang wird zuerst eine Gruppe ausgewählt (Fisch, Schatz, Müll, Angelschatz) und dann ein Item aus dieser Kategorie. Dabei haben die Gruppen und Items alle eine bestimmte Gewichtung. Ohne Glück des Meeres ist die Gewichtung bei Fischen 85, bei Schätzen 5 und bei Müll 10. Pro Stufe Glück des Meeres ändert sich diese Gewichtung jeweils um einen bestimmten Wert. Weil das bei Angelschätzen nicht der Fall ist, müssen diese eine eigene Gruppe bilden. Bei Glück des Meeres III ist die Gewichtung bei Fischen 82, bei Schätzen 11 und bei Müll 4. Die Gewichtung der Angelschätze beträgt dabei 1 und ändert sich nicht durch Glück des Meeres. Diese Gewichtung kann ich zwar nicht überprüfen, jedoch passt die daraus geschlussfolgerte Wahrscheinlichkeit der Angelschätze von 1/98=1,02% perfekt zu den Ergebnissen der zuvor genannten Statistiken.
Damit habe ich also nebenbei auch die exakte Wahrscheinlichkeit für Angelschätze ermittelt. Eigentlich brauche ich aber die Wahrscheinlichkeit für Verzauberte Bücher. Nun weiß ich, die Wahrscheinlichkeit für die Kategorie Schatz beträgt 11/98=11,22% (gäbe es keine Angelschätze, würde sie bei 11/97 liegen) und da die Gewichtung aller 6 Items innerhalb dieser Kategorie 1 beträgt, beträgt die Wahrscheinlichkeit eines Verzauberten Buches darin 1/6. Zusammengerechnet ergibt das eine Wahrscheinlichkeit von 11/98 • 1/6 = 11/588 = 1,87% für ein Verzaubertes Buch beim Angeln mit Glück des Meeres III. Die Wahrscheinlichkeit der anderen Schätze ist übrigens dieselbe, Angelschätze sind dabei wie gesagt ausgenommen.
Noch eine Info dazu, wie ich darauf gekommen bin, dass das etwas mit Datenpaketen zu tun hat. Angefangen hat alles damit, dass ich mich ein wenig mit Datenpaketen auseinandergesetzt habe, weil ich Lust dazu hatte. Da habe ich unter Anderem gesehen, dass auch die Items beim Angeln geändert werden können und ich habe einfach mal versucht zu ermitteln, wo die Angelschätze dort am besten hineinpassen, was auch geklappt hat. Erst dann ist mir die Idee gekommen, dass es jetzt ja vielleicht möglich wäre, die genaue Wahrscheinlichkeit für Reparatur herauszufinden. Dass es noch viel komplizierter werden würde, konnte ich da noch nicht ahnen.
Bevor ich die eben ermittelte Wahrscheinlichkeit zum Angeln eines Verzauberten Buches weiter verwende, möchte ich die Wahrscheinlichkeit ermitteln, mit der ein Verzaubertes Buch mit Reparatur verzaubert ist.
Ab jetzt wird es durch das modified enchantment level noch komplizierter. Keine Angst, ich erkläre natürlich, was das ist. Die nun folgenden Informationen habe ich fast alle von dieser Seite im Minecraft-Wiki. Leider gibt es diese Seite nur auf englisch und nicht in deutsch.
Jede Verzauberung findet mit einem bestimmten Level statt, dem base enchantment level. Bei Verzauberten Büchern durch Angeln beträgt dieses immer 30. Daraus wird dann das modified enchantment level berechnet und zwar auf folgende Art und Weise: Zuerst werden die Zahl 1 und zwei zufällige Zahlen addiert. Diese beiden liegen zufällig zwischen 0 und enchantability/4, also zwischen 0 und einem Viertel vom enchantability-Wert. Dieser enchantability-Wert wird durch das Material festgelegt, welches verzaubert wird. Bücher zählen dabei unter Sonstiges und haben den Wert 1. Vor dem addieren werden beide Zahlen jedoch noch abgerundet. Beim Verzaubern von Büchern betragen die beiden zufälligen Zahlen also höchstens 0,25, aber durch das abrunden immer 0. Diese zwei Zahlen können also in meiner Berechnung ignoriert werden und ich habe immer 31 als Zwischenergebnis. Zum Schluss wird dieses noch mit einer zufälligen Zahl zwischen 0,85 und 1,15 multipliziert. Dieser zufällige Wert folgt der Dreiecksverteilung, also sind Ergebnisse am Mittelwert, also 1, wahrscheinlicher als die Ergebnisse an den Rändern. Das modified enchantment level liegt somit zwischen 26,35 und 35,65. Dieser Wert wird dann noch gerundet, also liegt er im Bereich von 26 bis 36.
Jetzt weiß ich zwar, in welchem Bereich das modified enchantment level liegt, doch die genauen Wahrscheinlichkeiten für die einzelnen Level kenne ich noch nicht. Ich weiß nur, dass die Wahrscheinlichkeit bei 31 am höchsten ist und sie auf beiden Seiten linear abfällt bis sie bei 26,35 und 35,65 0 beträgt. Dafür kann ich eine Funktionsgleichung aufstellen, z.B.:
f(x) = - (1/4,65)^2 • |x-31| + 1/4,65
Zusammen mit der x-Achse entsteht so ein Dreieck mit dem Flächeninhalt 1. Diese Fläche teile ich überall dort durch einen senkrechten Strich, wo x auf ,5 steht, weil dort die Grenze zum Auf- oder Abrunden ist.
Jetzt kann ich den Flächeninhalt der 11 verschiedenen modified enchantment level berechnen. Das müsste ich theoretisch noch jeweils durch den Gesamtflächeninhalt teilen, da dieser aber 1 beträgt, ist dieser Schritt hinfällig und der Flächeninhalt entspricht direkt der Wahrscheinlichkeit für das modified enchantment level. Es gilt:
P(26)=P(36)= 1/2 • 0,15 • f(26,5) = 1/1922
P(27)=P(35)= 1 • f(26,5) + 1/2 • 1 • (f(27,5) - f(26,5)) = 260/8649
P(28)=P(34)= 1 • f(27,5) + 1/2 • 1 • (f(28,5) - f(27,5)) = 220/2883
P(29)=P(33)= 1 • f(28,5) + 1/2 • 1 • (f(29,5) - f(28,5)) = 1060/8649
P(30)=P(32)= 1 • f(29,5) + 1/2 • 1 • (f(30,5) - f(29,5)) = 1460/8649
P(31)= 1 • f(30,5) + 1/2 • 1 • (f(31) - f(30,5)) = 1760/8649
Eine Überprüfung bestätigt: Addiert man alle 11 Wahrscheinlichkeiten, so erhält man 1 als Summe.
Jede Verzauberung findet mit einem bestimmten Level statt, dem base enchantment level. Bei Verzauberten Büchern durch Angeln beträgt dieses immer 30. Daraus wird dann das modified enchantment level berechnet und zwar auf folgende Art und Weise: Zuerst werden die Zahl 1 und zwei zufällige Zahlen addiert. Diese beiden liegen zufällig zwischen 0 und enchantability/4, also zwischen 0 und einem Viertel vom enchantability-Wert. Dieser enchantability-Wert wird durch das Material festgelegt, welches verzaubert wird. Bücher zählen dabei unter Sonstiges und haben den Wert 1. Vor dem addieren werden beide Zahlen jedoch noch abgerundet. Beim Verzaubern von Büchern betragen die beiden zufälligen Zahlen also höchstens 0,25, aber durch das abrunden immer 0. Diese zwei Zahlen können also in meiner Berechnung ignoriert werden und ich habe immer 31 als Zwischenergebnis. Zum Schluss wird dieses noch mit einer zufälligen Zahl zwischen 0,85 und 1,15 multipliziert. Dieser zufällige Wert folgt der Dreiecksverteilung, also sind Ergebnisse am Mittelwert, also 1, wahrscheinlicher als die Ergebnisse an den Rändern. Das modified enchantment level liegt somit zwischen 26,35 und 35,65. Dieser Wert wird dann noch gerundet, also liegt er im Bereich von 26 bis 36.
Jetzt weiß ich zwar, in welchem Bereich das modified enchantment level liegt, doch die genauen Wahrscheinlichkeiten für die einzelnen Level kenne ich noch nicht. Ich weiß nur, dass die Wahrscheinlichkeit bei 31 am höchsten ist und sie auf beiden Seiten linear abfällt bis sie bei 26,35 und 35,65 0 beträgt. Dafür kann ich eine Funktionsgleichung aufstellen, z.B.:
f(x) = - (1/4,65)^2 • |x-31| + 1/4,65
Zusammen mit der x-Achse entsteht so ein Dreieck mit dem Flächeninhalt 1. Diese Fläche teile ich überall dort durch einen senkrechten Strich, wo x auf ,5 steht, weil dort die Grenze zum Auf- oder Abrunden ist.

Da es eigentlich eine lineare Funktion ist, die aber nur bis x=31 steigt und ab dort wieder fällt, brauche ich einen Betrag, der bei x=31 den Wert 0 hat, also f(x) = |x-31|. Als nächstes möchte ich den Wert f(31) bestimmen, für den der Flächeninhalt des Dreiecks, das entstehen soll, den Flächeninhalt 1 hat. Es muss gelten: 1/2 • 9,3 • f(31) = 1 Hier erhält man f(31) = 1/4,65 und als Funktion habe ich jetzt f(x) = |x-31| + 1/4,65. Nun brauche ich nur noch den Anstieg der Funktion. Von P1(26,35|0) bis P2(31|1/4,65) erhält man das Steigungsdreieck (1/4,65) / 4,65. Das kann noch umgeformt werden zu (1/4,65)^2. Außerdem muss dieser Anstieg negativ sein, weil der Graph ja auf beiden Seiten von f(31) kleiner werden muss. Damit habe ich die Funktion f(x) = - (1/4,65)^2 • |x-31| + 1/4,65 ermittelt. Theoretisch sind unendlich Funktionen möglich, je nachdem welchen Flächeninhalt man für das Dreieck wählt.
Jetzt kann ich den Flächeninhalt der 11 verschiedenen modified enchantment level berechnen. Das müsste ich theoretisch noch jeweils durch den Gesamtflächeninhalt teilen, da dieser aber 1 beträgt, ist dieser Schritt hinfällig und der Flächeninhalt entspricht direkt der Wahrscheinlichkeit für das modified enchantment level. Es gilt:
P(26)=P(36)= 1/2 • 0,15 • f(26,5) = 1/1922
P(27)=P(35)= 1 • f(26,5) + 1/2 • 1 • (f(27,5) - f(26,5)) = 260/8649
P(28)=P(34)= 1 • f(27,5) + 1/2 • 1 • (f(28,5) - f(27,5)) = 220/2883
P(29)=P(33)= 1 • f(28,5) + 1/2 • 1 • (f(29,5) - f(28,5)) = 1060/8649
P(30)=P(32)= 1 • f(29,5) + 1/2 • 1 • (f(30,5) - f(29,5)) = 1460/8649
P(31)= 1 • f(30,5) + 1/2 • 1 • (f(31) - f(30,5)) = 1760/8649
Eine Überprüfung bestätigt: Addiert man alle 11 Wahrscheinlichkeiten, so erhält man 1 als Summe.
Auch diese Informationen habe ich wieder von dieser Seite im englischen Minecraft-Wiki.
Immer nachdem eine Verzauberung vergeben wurde, wird entschieden, ob noch eine weitere Verzauberung dazukommt. Diese Wahrscheinlichkeit beträgt (modified enchantment level + 1)/50. Wird eine weitere Verzauberung vergeben, so wird das modified enchantment level halbiert und bei ,5 abgerundet. Das heißt, je mehr Verzauberungen schon auf dem Buch sind, desto geringer ist die Wahrscheinlichkeit, dass noch mehr Verzauberungen dazukommen.
Viel mehr gibt es hier gar nicht zu erklären. Ich habe „nur noch“ für alle 11 modified enchantment level je ein Baumdiagramm gezeichnet, die Wahrscheinlichkeiten überall berechnet und eingetragen.
Mit diesen Baumdiagrammen habe ich dann die Tabelle mit den Wahrscheinlichkeiten für die Anzahl von Verzauberungen pro Buch erstellt. Für die Wahrscheinlichkeit, dass ein Buch exakt x Verzauberungen hat, habe ich einfach alle 11 Wahrscheinlichkeiten von den 11 Baumdiagrammen addiert. Für die Wahrscheinlichkeit, dass ein Buch mindestens x Verzauberungen hat, habe ich von 1 alle Wahrscheinlichkeiten abgezogen, die für weniger Verzauberungen gelten.
Für die durchschnittliche Anzahl von Verzauberungen pro Buch habe ich einfach den Erwartungswert berechnet. Ich habe also von 1 bis 5 jeweils die Anzahl von Verzauberungen mit der Wahrscheinlichkeit, dass genau diese Anzahl an Verzauberungen auf dem Buch ist, multipliziert und bei 6 Verzauberungen habe ich 6 mit der Wahrscheinlichkeit multipliziert, dass ein Buch mindestens 6 Verzauberungen hat. Diese 6 Ergebnisse brauchte ich nur noch addieren.
Immer nachdem eine Verzauberung vergeben wurde, wird entschieden, ob noch eine weitere Verzauberung dazukommt. Diese Wahrscheinlichkeit beträgt (modified enchantment level + 1)/50. Wird eine weitere Verzauberung vergeben, so wird das modified enchantment level halbiert und bei ,5 abgerundet. Das heißt, je mehr Verzauberungen schon auf dem Buch sind, desto geringer ist die Wahrscheinlichkeit, dass noch mehr Verzauberungen dazukommen.
Viel mehr gibt es hier gar nicht zu erklären. Ich habe „nur noch“ für alle 11 modified enchantment level je ein Baumdiagramm gezeichnet, die Wahrscheinlichkeiten überall berechnet und eingetragen.

Mit diesen Baumdiagrammen habe ich dann die Tabelle mit den Wahrscheinlichkeiten für die Anzahl von Verzauberungen pro Buch erstellt. Für die Wahrscheinlichkeit, dass ein Buch exakt x Verzauberungen hat, habe ich einfach alle 11 Wahrscheinlichkeiten von den 11 Baumdiagrammen addiert. Für die Wahrscheinlichkeit, dass ein Buch mindestens x Verzauberungen hat, habe ich von 1 alle Wahrscheinlichkeiten abgezogen, die für weniger Verzauberungen gelten.
Für die durchschnittliche Anzahl von Verzauberungen pro Buch habe ich einfach den Erwartungswert berechnet. Ich habe also von 1 bis 5 jeweils die Anzahl von Verzauberungen mit der Wahrscheinlichkeit, dass genau diese Anzahl an Verzauberungen auf dem Buch ist, multipliziert und bei 6 Verzauberungen habe ich 6 mit der Wahrscheinlichkeit multipliziert, dass ein Buch mindestens 6 Verzauberungen hat. Diese 6 Ergebnisse brauchte ich nur noch addieren.
An dieser Stelle habe ich gesehen, dass ich die exakte Wahrscheinlichkeit für Reparatur mit einem Programm berechnen lassen muss.
Bei der Vergabe von Verzauberungen läuft es ähnlich ab, wie bei der Auswahl des Items, welches man angelt. Das heißt, dass jede Verzauberung eine bestimmte Gewichtung hat und damit dann zufällig eine Verzauberung bestimmt wird. Soweit so gut, aber ab der Auswahl der zweiten Verzauberung wird es extrem kompliziert, denn je nachdem welche Verzauberungen davor schon gewählt wurden, ändern sich dann auch alle Wahrscheinlichkeiten der nachfolgenden Verzauberungen. Zudem schließen sich manche Verzauberungen gegenseitig aus, sodass manche Verzauberungen im bestimmten Fällen gar nicht mehr vorkommen können.
Um das etwas zu vereinfachen und nicht zwischen allen 37 Verzauberungen einzeln unterscheiden zu müssen, habe ich diese in Gruppen geteilt. Dabei habe ich die zwei Verzauberungen Entladung und Sog schon außer Acht gelassen, denn die können auf diesem Server nicht geangelt werden. Die ersten 6 Gruppen bilden Verzauberungen, die sich gegenseitig ausschließen, denn wenn eine Verzauberung davon ausgewählt wurde, können auch die anderen aus dieser Gruppe nicht mehr vorkommen. In den Klammern steht jeweils die Gewichtung, welche ich wieder von dieser Seite im englischen Minecraft-Wiki habe, genauso wie auch die sich gegenseitig ausschließenden Verzauberungen. Dass die Nummerierung mit 0 beginnt hat damit zu tun, dass beim Programmieren Listen auch mit der Nummer 0 beginnen.
Gruppe 0: Reparatur (2), Unendlichkeit (1)
Gruppe 1: Schutz (10), Explosionsschutz (2), Feuerschutz (5), Schusssicher (5)
Gruppe 2: Schärfe (10), Bann (5), Nemesis der Gliederfüßer (5), Dichte (5), Durchbruch (2)
Gruppe 3: Wasserläufer (2), Eisläufer (2)
Gruppe 4: Glück (2), Behutsamkeit (1)
Gruppe 5: Durchschuss (10), Mehrfachschuss (2)
Die restlichen Verzauberungen habe ich so in Gruppen geteilt, dass Verzauberungen mit gleicher Gewichtung in einer Gruppe sind, denn egal welche Verzauberung aus einer Gruppe entfernt wird, ändern sich dann die Wahrscheinlichkeiten immer gleich.
Gruppe 6 (Gewichtung 10): Effizienz, Stärke
Gruppe 7 (Gewichtung 5): Rückstoß, Haltbarkeit, Schnellladen, Treue, Federfall
Gruppe 8 (Gewichtung 2): Flamme, Schlag, Schwungkraft, Plünderung, Verbrennung, Wasseraffinität, Glück des Meeres, Köder, Harpune, Atmung
Gruppe 9 (Gewichtung 1): Dornen, Fluch der Bindung, Fluch des Verschwindens
Nun habe ich eine gute Einteilung unternommen. Wie ich die Wahrscheinlichkeit dann ausrechne und wie ich keine Fälle doppelt zähle, erkläre ich später, wenn ich das Programm beschreibe, welches das alles berechnet. Eine Sache muss ich aber vorher schon beachten. Auf dieser Seite (auch im englischen Minecraft-Wiki) ist eine Liste, die bestimmt, welche Stufe die Verzauberungen haben. Das Ganze ist wieder abhängig vom modified enchantment level (an manchen Stellen überlappen sich Bereiche, in diesen Fällen wird die bessere Stufe vergeben). Die Unterteilung zwischen den verschiedenen Stufen mache ich aber erst später. Jetzt schon wichtig zu beachten ist jedoch, dass Schusssicher nur bis zum modified enchantment level 27 erhältlich ist, Eisläufer bis Level 35 und Federfall bis Level 29. Somit beeinflusst also auch das modified enchantment level die Wahrscheinlichkeiten, was ich im nächsten Schritt mit beachten muss.
Hinweis: Obwohl ich bei der Berechnung der Wahrscheinlichkeiten für die Anzahl von Verzauberungen pro Buch geschrieben habe, dass mit jeder weiteren Verzauberung das modified enchantment level halbiert wird, so wird an dieser Stelle trotzdem immer das modified enchantment level verwendet, welches zu Beginn berechnet wurde.
Bei der Vergabe von Verzauberungen läuft es ähnlich ab, wie bei der Auswahl des Items, welches man angelt. Das heißt, dass jede Verzauberung eine bestimmte Gewichtung hat und damit dann zufällig eine Verzauberung bestimmt wird. Soweit so gut, aber ab der Auswahl der zweiten Verzauberung wird es extrem kompliziert, denn je nachdem welche Verzauberungen davor schon gewählt wurden, ändern sich dann auch alle Wahrscheinlichkeiten der nachfolgenden Verzauberungen. Zudem schließen sich manche Verzauberungen gegenseitig aus, sodass manche Verzauberungen im bestimmten Fällen gar nicht mehr vorkommen können.
Um das etwas zu vereinfachen und nicht zwischen allen 37 Verzauberungen einzeln unterscheiden zu müssen, habe ich diese in Gruppen geteilt. Dabei habe ich die zwei Verzauberungen Entladung und Sog schon außer Acht gelassen, denn die können auf diesem Server nicht geangelt werden. Die ersten 6 Gruppen bilden Verzauberungen, die sich gegenseitig ausschließen, denn wenn eine Verzauberung davon ausgewählt wurde, können auch die anderen aus dieser Gruppe nicht mehr vorkommen. In den Klammern steht jeweils die Gewichtung, welche ich wieder von dieser Seite im englischen Minecraft-Wiki habe, genauso wie auch die sich gegenseitig ausschließenden Verzauberungen. Dass die Nummerierung mit 0 beginnt hat damit zu tun, dass beim Programmieren Listen auch mit der Nummer 0 beginnen.
Gruppe 0: Reparatur (2), Unendlichkeit (1)
Gruppe 1: Schutz (10), Explosionsschutz (2), Feuerschutz (5), Schusssicher (5)
Gruppe 2: Schärfe (10), Bann (5), Nemesis der Gliederfüßer (5), Dichte (5), Durchbruch (2)
Gruppe 3: Wasserläufer (2), Eisläufer (2)
Gruppe 4: Glück (2), Behutsamkeit (1)
Gruppe 5: Durchschuss (10), Mehrfachschuss (2)
Die restlichen Verzauberungen habe ich so in Gruppen geteilt, dass Verzauberungen mit gleicher Gewichtung in einer Gruppe sind, denn egal welche Verzauberung aus einer Gruppe entfernt wird, ändern sich dann die Wahrscheinlichkeiten immer gleich.
Gruppe 6 (Gewichtung 10): Effizienz, Stärke
Gruppe 7 (Gewichtung 5): Rückstoß, Haltbarkeit, Schnellladen, Treue, Federfall
Gruppe 8 (Gewichtung 2): Flamme, Schlag, Schwungkraft, Plünderung, Verbrennung, Wasseraffinität, Glück des Meeres, Köder, Harpune, Atmung
Gruppe 9 (Gewichtung 1): Dornen, Fluch der Bindung, Fluch des Verschwindens
Nun habe ich eine gute Einteilung unternommen. Wie ich die Wahrscheinlichkeit dann ausrechne und wie ich keine Fälle doppelt zähle, erkläre ich später, wenn ich das Programm beschreibe, welches das alles berechnet. Eine Sache muss ich aber vorher schon beachten. Auf dieser Seite (auch im englischen Minecraft-Wiki) ist eine Liste, die bestimmt, welche Stufe die Verzauberungen haben. Das Ganze ist wieder abhängig vom modified enchantment level (an manchen Stellen überlappen sich Bereiche, in diesen Fällen wird die bessere Stufe vergeben). Die Unterteilung zwischen den verschiedenen Stufen mache ich aber erst später. Jetzt schon wichtig zu beachten ist jedoch, dass Schusssicher nur bis zum modified enchantment level 27 erhältlich ist, Eisläufer bis Level 35 und Federfall bis Level 29. Somit beeinflusst also auch das modified enchantment level die Wahrscheinlichkeiten, was ich im nächsten Schritt mit beachten muss.
Hinweis: Obwohl ich bei der Berechnung der Wahrscheinlichkeiten für die Anzahl von Verzauberungen pro Buch geschrieben habe, dass mit jeder weiteren Verzauberung das modified enchantment level halbiert wird, so wird an dieser Stelle trotzdem immer das modified enchantment level verwendet, welches zu Beginn berechnet wurde.
Im Folgenden erkläre ich grob das Programm, welches ich mit Python programmiert habe, um die Wahrscheinlichkeiten für alle Verzauberungen berechnen zu lassen. Dabei erkläre ich nur was das Programm macht und berechnet und nicht wie es diese Berechnungen durchführt, damit es auch halbwegs für Spieler verständlich ist, die noch nie programmiert haben. Die Python-Datei ist im nächsten Spoiler zum kopieren und anschauen hinterlegt (leider nur im Light-Mode gut erkennbar). Die Berechnungen sind sehr rechenaufwendig und dauern sehr lange. Bei mir hat es knapp 50 Minuten gedauert, aber das schwankt je nach Leistung des Computers. Außerdem habe ich auch hier in allen Berechnungen Brüche verwendet, um die exakten Wahrscheinlichkeiten zu berechnen, denn float-Werte sind ja nur auf eine bestimmte Nachkommastelle genau.
Damit sind die Berechnungen fertig und die Ergebnisse können in die Liste hier im Forum eingetragen werden. Sollten mit neuen Versionen auch neue Verzauberungen hinzukommen, so muss ich das Programm daran anpassen, was aber nicht viel Arbeit sein sollte. Das Ändern aller Wahrscheinlichkeit in der Liste hier im Forum wird da wahrscheinlich länger dauern.
Python:
import math
liste = [[],[],[],[],[],[],[],[],[],[],[]]
gruppeanzmax = [1,1,1,1,1,1,2,5,10,3]
gruppeanzjetzt = gruppeanzmax.copy()
gruppewert = [3,22,27,4,3,12,10,5,2,1]
enchantability = 26
ench = [[1,1922],[260,8649],[220,2883],[1060,8649],[1460,8649],[1760,8649]]
summe1 = [0,1]
summe2 = [0,1]
reparatur = [0,1]
rein = [0,1]
unendlichkeit = [0,1]
schutz3 = [0,1]
schutz4 = [0,1]
explosionsschutz3 = [0,1]
explosionsschutz4 = [0,1]
feuerschutz3 = [0,1]
feuerschutz4 = [0,1]
schusssicher4 = [0,1]
schärfe3 = [0,1]
schärfe4 = [0,1]
bann3 = [0,1]
bann4 = [0,1]
nemesis_der_gliederfüßer3 = [0,1]
nemesis_der_gliederfüßer4 = [0,1]
dichte3 = [0,1]
dichte4 = [0,1]
durchbruch2 = [0,1]
durchbruch3 = [0,1]
wasserläufer2 = [0,1]
wasserläufer3 = [0,1]
eisläufer2 = [0,1]
glück2 = [0,1]
glück3 = [0,1]
behutsamkeit = [0,1]
durchschuss3 = [0,1]
durchschuss4 = [0,1]
mehrfachschuss = [0,1]
effizienz3 = [0,1]
effizienz4 = [0,1]
stärke3 = [0,1]
stärke4 = [0,1]
rückstoß2 = [0,1]
haltbarkeit3 = [0,1]
schnellladen1 = [0,1]
schnellladen2 = [0,1]
treue3 = [0,1]
federfall4 = [0,1]
flamme = [0,1]
schlag1 = [0,1]
schlag2 = [0,1]
schwungkraft3 = [0,1]
plünderung2 = [0,1]
plünderung3 = [0,1]
verbrennung1 = [0,1]
verbrennung2 = [0,1]
wasseraffinität = [0,1]
glück_des_meeres2 = [0,1]
glück_des_meeres3 = [0,1]
köder2 = [0,1]
köder3 = [0,1]
harpune4 = [0,1]
harpune5 = [0,1]
atmung2 = [0,1]
atmung3 = [0,1]
dornen1 = [0,1]
dornen2 = [0,1]
fluch_der_bindung = [0,1]
fluch_des_verschwindens = [0,1]
def summe(gruppeanzjetzt, gruppewert):
summe = 0
for k in range(10):
summe += gruppeanzjetzt[k] * gruppewert[k]
return summe
def multiplizieren(z1, n1, z2, n2):
z3 = z1 * z2
n3 = n1 * n2
z3, n3 = z3 // math.gcd(z3, n3), n3 // math.gcd(z3, n3)
return abs(z3), abs(n3)
def addieren(z1, n1, z2, n2):
z3 = z1 * n2 + z2 * n1
n3 = n1 * n2
z3, n3 = z3 // math.gcd(z3, n3), n3 // math.gcd(z3, n3)
return abs(z3), abs(n3)
for x in range(11):
print("Erstelle Liste x:", x)
for a in range(10):
for b in range(10):
for c in range(10):
for d in range(10):
for e in range(10):
for f in range(10):
liste[x].append([a,b,c,d,e,f])
for a in range(10):
for b in range(10):
for c in range(10):
for d in range(10):
for e in range(10):
liste[x].append([a,b,c,d,e,10])
for a in range(10):
for b in range(10):
for c in range(10):
for d in range(10):
liste[x].append([a,b,c,d,10,10])
for a in range(10):
for b in range(10):
for c in range(10):
liste[x].append([a,b,c,10,10,10])
for a in range(10):
for b in range(10):
liste[x].append([a,b,10,10,10,10])
for a in range(10):
liste[x].append([a,10,10,10,10,10])
for x in range(11):
if x + 26 > 27:
gruppewert[1] = 17
if x + 26 > 35:
gruppewert[3] = 2
if x + 26 > 29:
gruppeanzmax[7] = 4
for i in range(1111110):
if i % 100000 == 0:
print("Berechne Wahrscheinlichkeiten x:", x, "i:", i // 100000)
gruppeanzjetzt = gruppeanzmax.copy()
liste[x][i].append(1)
liste[x][i].append(1)
enchantability = 26 + x
for j in range(6):
if liste[x][i][j] != 10:
liste[x][i][6], liste[x][i][7] = multiplizieren(liste[x][i][6], liste[x][i][7], gruppeanzjetzt[liste[x][i][j]] * gruppewert[liste[x][i][j]], summe(gruppeanzjetzt, gruppewert))
gruppeanzjetzt[liste[x][i][j]] -= 1
if j != 5:
if liste[x][i][j + 1] == 10:
liste[x][i][6], liste[x][i][7] = multiplizieren(liste[x][i][6], liste[x][i][7], 49 - enchantability, 50)
else:
liste[x][i][6], liste[x][i][7] = multiplizieren(liste[x][i][6], liste[x][i][7], enchantability + 1, 50)
enchantability //= 2
liste[x][i][6], liste[x][i][7] = multiplizieren(liste[x][i][6], liste[x][i][7], ench[5 - abs(5 - x)][0], ench[5 - abs(5 - x)][1])
for x in range(11):
for i in range(1111110):
summe1[0], summe1[1] = addieren(summe1[0], summe1[1], liste[x][i][6], liste[x][i][7])
if i % 100000 == 0:
print("Berechne Wahrscheinlichkeiten x:", x, "i:", i // 100000)
for j in range(6):
if liste[x][i][j] == 0:
reparatur[0], reparatur[1] = addieren(reparatur[0], reparatur[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 3));
unendlichkeit[0], unendlichkeit[1] = addieren(unendlichkeit[0], unendlichkeit[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 1, 3));
if liste[x][i][1] == 10:
rein[0], rein[1] = addieren(rein[0], rein[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 3));
if liste[x][i][j] == 1:
if x + 26 <= 27:
schutz3[0], schutz3[1] = addieren(schutz3[0], schutz3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 10, 22));
elif x + 26 < 34:
schutz3[0], schutz3[1] = addieren(schutz3[0], schutz3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 10, 17));
else:
schutz4[0], schutz4[1] = addieren(schutz4[0], schutz4[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 10, 17));
if x + 26 <= 27:
explosionsschutz3[0], explosionsschutz3[1] = addieren(explosionsschutz3[0], explosionsschutz3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 22));
elif x + 26 < 29:
explosionsschutz3[0], explosionsschutz3[1] = addieren(explosionsschutz3[0], explosionsschutz3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 17));
else:
explosionsschutz4[0], explosionsschutz4[1] = addieren(explosionsschutz4[0], explosionsschutz4[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 17));
if x + 26 <= 27:
feuerschutz3[0], feuerschutz3[1] = addieren(feuerschutz3[0], feuerschutz3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 22));
elif x + 26 < 34:
feuerschutz3[0], feuerschutz3[1] = addieren(feuerschutz3[0], feuerschutz3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 17));
else:
feuerschutz4[0], feuerschutz4[1] = addieren(feuerschutz4[0], feuerschutz4[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 17));
if x + 26 <= 27:
schusssicher4[0], schusssicher4[1] = addieren(schusssicher4[0], schusssicher4[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 22));
if liste[x][i][j] == 2:
if x + 26 < 34:
schärfe3[0], schärfe3[1] = addieren(schärfe3[0], schärfe3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 10, 27));
else:
schärfe4[0], schärfe4[1] = addieren(schärfe4[0], schärfe4[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 10, 27));
if x + 26 < 29:
bann3[0], bann3[1] = addieren(bann3[0], bann3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 27));
else:
bann4[0], bann4[1] = addieren(bann4[0], bann4[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 27));
if x + 26 < 29:
nemesis_der_gliederfüßer3[0], nemesis_der_gliederfüßer3[1] = addieren(nemesis_der_gliederfüßer3[0], nemesis_der_gliederfüßer3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 27));
else:
nemesis_der_gliederfüßer4[0], nemesis_der_gliederfüßer4[1] = addieren(nemesis_der_gliederfüßer4[0], nemesis_der_gliederfüßer4[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 27));
if x + 26 < 29:
dichte3[0], dichte3[1] = addieren(dichte3[0], dichte3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 27));
else:
dichte4[0], dichte4[1] = addieren(dichte4[0], dichte4[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 27));
if x + 26 < 33:
durchbruch2[0], durchbruch2[1] = addieren(durchbruch2[0], durchbruch2[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 27));
else:
durchbruch3[0], durchbruch3[1] = addieren(durchbruch3[0], durchbruch3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 27));
if liste[x][i][j] == 3:
if x + 26 < 30:
wasserläufer2[0], wasserläufer2[1] = addieren(wasserläufer2[0], wasserläufer2[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 4));
elif x + 26 <= 35:
wasserläufer3[0], wasserläufer3[1] = addieren(wasserläufer3[0], wasserläufer3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 4));
else:
wasserläufer3[0], wasserläufer3[1] = addieren(wasserläufer3[0], wasserläufer3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 2));
if x + 26 <= 35:
eisläufer2[0], eisläufer2[1] = addieren(eisläufer2[0], eisläufer2[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 4));
if liste[x][i][j] == 4:
if x + 26 < 33:
glück2[0], glück2[1] = addieren(glück2[0], glück2[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 3));
else:
glück3[0], glück3[1] = addieren(glück3[0], glück3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 3));
behutsamkeit[0], behutsamkeit[1] = addieren(behutsamkeit[0], behutsamkeit[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 1, 3));
if liste[x][i][j] == 5:
if x + 26 < 31:
durchschuss3[0], durchschuss3[1] = addieren(durchschuss3[0], durchschuss3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 10, 12));
else:
durchschuss4[0], durchschuss4[1] = addieren(durchschuss4[0], durchschuss4[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 10, 12));
mehrfachschuss[0], mehrfachschuss[1] = addieren(mehrfachschuss[0], mehrfachschuss[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 12));
if liste[x][i][j] == 6:
if x + 26 < 31:
effizienz3[0], effizienz3[1] = addieren(effizienz3[0], effizienz3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 10, 20));
else:
effizienz4[0], effizienz4[1] = addieren(effizienz4[0], effizienz4[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 10, 20));
if x + 26 < 31:
stärke3[0], stärke3[1] = addieren(stärke3[0], stärke3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 10, 20));
else:
stärke4[0], stärke4[1] = addieren(stärke4[0], stärke4[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 10, 20));
if liste[x][i][j] == 7:
if x + 26 <= 29:
rückstoß2[0], rückstoß2[1] = addieren(rückstoß2[0], rückstoß2[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 25));
haltbarkeit3[0], haltbarkeit3[1] = addieren(haltbarkeit3[0], haltbarkeit3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 25));
schnellladen1[0], schnellladen1[1] = addieren(schnellladen1[0], schnellladen1[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 25));
treue3[0], treue3[1] = addieren(treue3[0], treue3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 25));
federfall4[0], federfall4[1] = addieren(federfall4[0], federfall4[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 25));
else:
rückstoß2[0], rückstoß2[1] = addieren(rückstoß2[0], rückstoß2[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 20));
haltbarkeit3[0], haltbarkeit3[1] = addieren(haltbarkeit3[0], haltbarkeit3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 20));
if x + 26 < 32:
schnellladen1[0], schnellladen1[1] = addieren(schnellladen1[0], schnellladen1[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 20));
else:
schnellladen2[0], schnellladen2[1] = addieren(schnellladen2[0], schnellladen2[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 20));
treue3[0], treue3[1] = addieren(treue3[0], treue3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 5, 20));
if liste[x][i][j] == 8:
flamme[0], flamme[1] = addieren(flamme[0], flamme[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
if x + 26 < 32:
schlag1[0], schlag1[1] = addieren(schlag1[0], schlag1[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
else:
schlag2[0], schlag2[1] = addieren(schlag2[0], schlag2[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
schwungkraft3[0], schwungkraft3[1] = addieren(schwungkraft3[0], schwungkraft3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
if x + 26 < 33:
plünderung2[0], plünderung2[1] = addieren(plünderung2[0], plünderung2[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
else:
plünderung3[0], plünderung3[1] = addieren(plünderung3[0], plünderung3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
if x + 26 < 30:
verbrennung1[0], verbrennung1[1] = addieren(verbrennung1[0], verbrennung1[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
else:
verbrennung2[0], verbrennung2[1] = addieren(verbrennung2[0], verbrennung2[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
wasseraffinität[0], wasseraffinität[1] = addieren(wasseraffinität[0], wasseraffinität[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
if x + 26 < 33:
glück_des_meeres2[0], glück_des_meeres2[1] = addieren(glück_des_meeres2[0], glück_des_meeres2[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
else:
glück_des_meeres3[0], glück_des_meeres3[1] = addieren(glück_des_meeres3[0], glück_des_meeres3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
if x + 26 < 33:
köder2[0], köder2[1] = addieren(köder2[0], köder2[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
else:
köder3[0], köder3[1] = addieren(köder3[0], köder3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
if x + 26 < 33:
harpune4[0], harpune4[1] = addieren(harpune4[0], harpune4[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
else:
harpune5[0], harpune5[1] = addieren(harpune5[0], harpune5[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
if x + 26 < 30:
atmung2[0], atmung2[1] = addieren(atmung2[0], atmung2[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
else:
atmung3[0], atmung3[1] = addieren(atmung3[0], atmung3[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 2, 20));
if liste[x][i][j] == 9:
if x + 26 < 30:
dornen1[0], dornen1[1] = addieren(dornen1[0], dornen1[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 1, 3));
else:
dornen2[0], dornen2[1] = addieren(dornen2[0], dornen2[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 1, 3));
fluch_der_bindung[0], fluch_der_bindung[1] = addieren(fluch_der_bindung[0], fluch_der_bindung[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 1, 3));
fluch_des_verschwindens[0], fluch_des_verschwindens[1] = addieren(fluch_des_verschwindens[0], fluch_des_verschwindens[1], *multiplizieren(liste[x][i][6], liste[x][i][7], 1, 3));
def ausgabe(name, z, n):
z3, n3 = multiplizieren(z, n, 11, 588)
print(f"{name}\t{round(100 * z3 / n3, 3)}%\t{round(n3 / z3, 1)}\t{round(100 * z / n,1)}%\t{round(n / z,1)}")
return addieren(summe2[0], summe2[1], z, n)
print("Verzauberung\tP gesamt\t1/P\tP Buch\t1/P")
summe2[0], summe2[1] = ausgabe("Atmung 2", atmung2[0], atmung2[1])
summe2[0], summe2[1] = ausgabe("Atmung 3", atmung3[0], atmung3[1])
summe2[0], summe2[1] = ausgabe("Bann 3", bann3[0], bann3[1])
summe2[0], summe2[1] = ausgabe("Bann 4", bann4[0], bann4[1])
summe2[0], summe2[1] = ausgabe("Behutsamkeit", behutsamkeit[0], behutsamkeit[1])
summe2[0], summe2[1] = ausgabe("Dichte 3", dichte3[0], dichte3[1])
summe2[0], summe2[1] = ausgabe("Dichte 4", dichte4[0], dichte4[1])
summe2[0], summe2[1] = ausgabe("Dornen 1", dornen1[0], dornen1[1])
summe2[0], summe2[1] = ausgabe("Dornen 2", dornen2[0], dornen2[1])
summe2[0], summe2[1] = ausgabe("Durchbruch 2", durchbruch2[0], durchbruch2[1])
summe2[0], summe2[1] = ausgabe("Durchbruch 3", durchbruch3[0], durchbruch3[1])
summe2[0], summe2[1] = ausgabe("Durchschuss 3", durchschuss3[0], durchschuss3[1])
summe2[0], summe2[1] = ausgabe("Durchschuss 4", durchschuss4[0], durchschuss4[1])
summe2[0], summe2[1] = ausgabe("Effizienz 3", effizienz3[0], effizienz3[1])
summe2[0], summe2[1] = ausgabe("Effizienz 4", effizienz4[0], effizienz4[1])
summe2[0], summe2[1] = ausgabe("Eisläufer 2", eisläufer2[0], eisläufer2[1])
summe2[0], summe2[1] = ausgabe("Explosionsschutz 3", explosionsschutz3[0], explosionsschutz3[1])
summe2[0], summe2[1] = ausgabe("Explosionsschutz 4", explosionsschutz4[0], explosionsschutz4[1])
summe2[0], summe2[1] = ausgabe("Federfall 4", federfall4[0], federfall4[1])
summe2[0], summe2[1] = ausgabe("Feuerschutz 3", feuerschutz3[0], feuerschutz3[1])
summe2[0], summe2[1] = ausgabe("Feuerschutz 4", feuerschutz4[0], feuerschutz4[1])
summe2[0], summe2[1] = ausgabe("Flamme", flamme[0], flamme[1])
summe2[0], summe2[1] = ausgabe("Fluch der Bindung", fluch_der_bindung[0], fluch_der_bindung[1])
summe2[0], summe2[1] = ausgabe("Fluch des Verschwindens", fluch_des_verschwindens[0], fluch_des_verschwindens[1])
summe2[0], summe2[1] = ausgabe("Glück 2", glück2[0], glück2[1])
summe2[0], summe2[1] = ausgabe("Glück 3", glück3[0], glück3[1])
summe2[0], summe2[1] = ausgabe("Glück des Meeres 2", glück_des_meeres2[0], glück_des_meeres2[1])
summe2[0], summe2[1] = ausgabe("Glück des Meeres 3", glück_des_meeres3[0], glück_des_meeres3[1])
summe2[0], summe2[1] = ausgabe("Haltbarkeit 3", haltbarkeit3[0], haltbarkeit3[1])
summe2[0], summe2[1] = ausgabe("Harpune 4", harpune4[0], harpune4[1])
summe2[0], summe2[1] = ausgabe("Harpune 5", harpune5[0], harpune5[1])
summe2[0], summe2[1] = ausgabe("Köder 2", köder2[0], köder2[1])
summe2[0], summe2[1] = ausgabe("Köder 3", köder3[0], köder3[1])
summe2[0], summe2[1] = ausgabe("Mehrfachschuss", mehrfachschuss[0], mehrfachschuss[1])
summe2[0], summe2[1] = ausgabe("Nemesis der Gliederfüßer 3", nemesis_der_gliederfüßer3[0], nemesis_der_gliederfüßer3[1])
summe2[0], summe2[1] = ausgabe("Nemesis der Gliederfüßer 4", nemesis_der_gliederfüßer4[0], nemesis_der_gliederfüßer4[1])
summe2[0], summe2[1] = ausgabe("Plünderung 2", plünderung2[0], plünderung2[1])
summe2[0], summe2[1] = ausgabe("Plünderung 3", plünderung3[0], plünderung3[1])
summe2[0], summe2[1] = ausgabe("Reparatur", reparatur[0], reparatur[1])
summe2[0], summe2[1] = ausgabe("Reparatur (rein)", rein[0], rein[1])
summe2[0], summe2[1] = addieren(summe2[0], summe2[1], -rein[0], rein[1])
summe2[0], summe2[1] = ausgabe("Rückstoß 2", rückstoß2[0], rückstoß2[1])
summe2[0], summe2[1] = ausgabe("Schärfe 3", schärfe3[0], schärfe3[1])
summe2[0], summe2[1] = ausgabe("Schärfe 4", schärfe4[0], schärfe4[1])
summe2[0], summe2[1] = ausgabe("Schlag 1", schlag1[0], schlag1[1])
summe2[0], summe2[1] = ausgabe("Schlag 2", schlag2[0], schlag2[1])
summe2[0], summe2[1] = ausgabe("Schnellladen 1", schnellladen1[0], schnellladen1[1])
summe2[0], summe2[1] = ausgabe("Schnellladen 2", schnellladen2[0], schnellladen2[1])
summe2[0], summe2[1] = ausgabe("Schusssicher 4", schusssicher4[0], schusssicher4[1])
summe2[0], summe2[1] = ausgabe("Schutz 3", schutz3[0], schutz3[1])
summe2[0], summe2[1] = ausgabe("Schutz 4", schutz4[0], schutz4[1])
summe2[0], summe2[1] = ausgabe("Schwungkraft 3", schwungkraft3[0], schwungkraft3[1])
summe2[0], summe2[1] = ausgabe("Stärke 3", stärke3[0], stärke3[1])
summe2[0], summe2[1] = ausgabe("Stärke 4", stärke4[0], stärke4[1])
summe2[0], summe2[1] = ausgabe("Treue 3", treue3[0], treue3[1])
summe2[0], summe2[1] = ausgabe("Unendlichkeit", unendlichkeit[0], unendlichkeit[1])
summe2[0], summe2[1] = ausgabe("Verbrennung 1", verbrennung1[0], verbrennung1[1])
summe2[0], summe2[1] = ausgabe("Verbrennung 2", verbrennung2[0], verbrennung2[1])
summe2[0], summe2[1] = ausgabe("Wasseraffinität", wasseraffinität[0], wasseraffinität[1])
summe2[0], summe2[1] = ausgabe("Wasserläufer 2", wasserläufer2[0], wasserläufer2[1])
summe2[0], summe2[1] = ausgabe("Wasserläufer 3", wasserläufer3[0], wasserläufer3[1])
print(f"Überprüfung Summe 1: {summe1[0] / summe1[1]}")
print(f"Überprüfung Erwartungswert: {summe2[0] / summe2[1]}")
print(f"Anteil reiner Reparatur-Bücher: {100 * rein[0] * reparatur[1] / rein[1] / reparatur[0]}%")
print(f"Anteil reiner Reparatur-Bücher: 1 zu {rein[1] * reparatur[0] / rein[0] / reparatur[1]}")
Zu Beginn des Programms wird eine lange Liste erstellt. Diese unterscheidet zwischen den 11 verschiedenen modified enchantment level und beinhaltet für diese jeweils alle 1.111.110 verschiedenen Kombinationsmöglichkeiten der 10 Gruppen, in welche ich zuvor die 37 Verzauberungen zusammengefasst habe. Bei diesen Kombinationsmöglichkeiten dürfen alle Gruppen beliebig oft vorkommen und ich betrachte alle Fälle bis maximal 6 Verzauberungen auf einem Buch. Zwar gibt es so auch Fälle, die gar nicht auftreten können (z.B. die Gruppen 0 bis 5 dürfen nicht mehr als einmal vorkommen, was hier aber teilweise passiert), aber diese Fälle werden später eh rausgerechnet.
Für jeden dieser Fälle werden die 6 Verzauberungen als Gruppennummer 0 bis 9 gespeichert (bei keiner Verzauberung wird eine 10 gespeichert). Außerdem werden jeweils Zähler und Nenner der Wahrscheinlichkeit dieses Falls gespeichert. Da die Wahrscheinlichkeiten noch nicht berechnet wurden, betragen diese zu Beginn jeweils 1/1.
Insgesamt hat diese Liste also 97.777.768 Einträge, was eine extrem große Zahl ist.
Für jeden dieser Fälle werden die 6 Verzauberungen als Gruppennummer 0 bis 9 gespeichert (bei keiner Verzauberung wird eine 10 gespeichert). Außerdem werden jeweils Zähler und Nenner der Wahrscheinlichkeit dieses Falls gespeichert. Da die Wahrscheinlichkeiten noch nicht berechnet wurden, betragen diese zu Beginn jeweils 1/1.
Insgesamt hat diese Liste also 97.777.768 Einträge, was eine extrem große Zahl ist.
Im zweiten Teil wird für jeden dieser 11 • 1.111.110 Fälle die exakte Wahrscheinlichkeit berechnet, dass dieser eintritt. Dafür wird für jeden Fall jede Verzauberung einzeln durchgegangen.
Als erstes wird für jede der bis zu 6 Gruppen die Wahrscheinlichkeit multipliziert, mit der diese Gruppe ausgewählt wird. Wie zuvor schonmal erklärt, haben alle Verzauberungen eine bestimmte Gewichtung und manche Verzauberungen schließen einander aus. Diese habe ich dann so in Gruppen zusammengefasst, dass innerhalb einer Gruppe gilt: Egal welche Verzauberung aus dieser Gruppe gewählt wird, die Summe der Gewichtungen aller möglichen Verzauberungen ändert sich um den gleichen Wert. Außerdem hat jede Gruppe eine bestimmte Anzahl, wie oft sie maximal vorkommen kann. Die Wahrscheinlichkeit zur Auswahl dieser Gruppe beträgt also Wertigkeit • verbleibende Anzahl / Summe der Gewichtungen aller verbleibenden Verzauberungen und diese Wahrscheinlichkeit wird multipliziert. Außerdem wird die verbleibende Anzahl dieser Gruppe um 1 kleiner. Bei allen Kombinationsmöglichkeiten, bei denen eine Gruppe öfter vorkommt als eigentlich möglich ist, ist die Anzahl, wie oft diese Gruppe noch vorkommen darf, irgendwann 0, sodass durch die Multiplikation die Wahrscheinlichkeit dieses Falls auch 0 beträgt. Die verbleibenden Anzahlen der Gruppen werden nach jedem Fall natürlich wieder auf den Ausgangswert zurückgesetzt. Außerdem sind 3 Verzauberungen bei bestimmten modified enchanment level nicht erhältlich, weshalb in diesen Fällen dann auch die Ausgangswerte von Wertigkeit und maximaler Anzahl der Gruppen geändert werden.
Nachdem die Wahrscheinlichkeiten für die jeweiligen Gruppen multipliziert wurde, wird auch die Wahrscheinlichkeit multipliziert, mit der diese Anzahl von Verzauberungen vorkommt. Die Wahrscheinlichkeit für eine weitere Verzauberung beträgt immer (modified enchantment level + 1)/50 und danach wird das modified enchantment level halbiert und gegebenenfalls abgerundet. Wenn danach noch eine weitere Verzauberung kommt, so multipliziere ich diese Wahrscheinlichkeit. Andernfalls multipliziere ich das Ergebnis von 1 minus dieser Wahrscheinlichkeit. In Fällen mit 6 Verzauberungen führe ich diesen Schritt nur 5 Mal aus, damit ich die Wahrscheinlichkeit habe, dass mindestens 6 Verzauberungen auf einem Buch sind. Das modified enchantment level setze ich nach jedem Fall natürlich wieder zurück.
All diese Berechnungen bis hier geschehen jedoch nur, wenn an der Stelle, die gerade berechnet wird, auch eine Verzauberung vorhanden ist, sonst wird nichts dazumultipliziert. Zum Schluss muss dann nur noch in allen Fällen die Wahrscheinlichkeit multipliziert werden, mit der das modified enchantment level dieses Falls vorkommt.
Jetzt habe ich für alle Fälle die Wahrscheinlichkeit berechnet und diese müssen nur noch im letzten Schritt ausgewertet werden. Der schwierigste Teil ist also geschafft, auch wenn der nächste länger bei der Berechnung braucht.
Als erstes wird für jede der bis zu 6 Gruppen die Wahrscheinlichkeit multipliziert, mit der diese Gruppe ausgewählt wird. Wie zuvor schonmal erklärt, haben alle Verzauberungen eine bestimmte Gewichtung und manche Verzauberungen schließen einander aus. Diese habe ich dann so in Gruppen zusammengefasst, dass innerhalb einer Gruppe gilt: Egal welche Verzauberung aus dieser Gruppe gewählt wird, die Summe der Gewichtungen aller möglichen Verzauberungen ändert sich um den gleichen Wert. Außerdem hat jede Gruppe eine bestimmte Anzahl, wie oft sie maximal vorkommen kann. Die Wahrscheinlichkeit zur Auswahl dieser Gruppe beträgt also Wertigkeit • verbleibende Anzahl / Summe der Gewichtungen aller verbleibenden Verzauberungen und diese Wahrscheinlichkeit wird multipliziert. Außerdem wird die verbleibende Anzahl dieser Gruppe um 1 kleiner. Bei allen Kombinationsmöglichkeiten, bei denen eine Gruppe öfter vorkommt als eigentlich möglich ist, ist die Anzahl, wie oft diese Gruppe noch vorkommen darf, irgendwann 0, sodass durch die Multiplikation die Wahrscheinlichkeit dieses Falls auch 0 beträgt. Die verbleibenden Anzahlen der Gruppen werden nach jedem Fall natürlich wieder auf den Ausgangswert zurückgesetzt. Außerdem sind 3 Verzauberungen bei bestimmten modified enchanment level nicht erhältlich, weshalb in diesen Fällen dann auch die Ausgangswerte von Wertigkeit und maximaler Anzahl der Gruppen geändert werden.
Nachdem die Wahrscheinlichkeiten für die jeweiligen Gruppen multipliziert wurde, wird auch die Wahrscheinlichkeit multipliziert, mit der diese Anzahl von Verzauberungen vorkommt. Die Wahrscheinlichkeit für eine weitere Verzauberung beträgt immer (modified enchantment level + 1)/50 und danach wird das modified enchantment level halbiert und gegebenenfalls abgerundet. Wenn danach noch eine weitere Verzauberung kommt, so multipliziere ich diese Wahrscheinlichkeit. Andernfalls multipliziere ich das Ergebnis von 1 minus dieser Wahrscheinlichkeit. In Fällen mit 6 Verzauberungen führe ich diesen Schritt nur 5 Mal aus, damit ich die Wahrscheinlichkeit habe, dass mindestens 6 Verzauberungen auf einem Buch sind. Das modified enchantment level setze ich nach jedem Fall natürlich wieder zurück.
All diese Berechnungen bis hier geschehen jedoch nur, wenn an der Stelle, die gerade berechnet wird, auch eine Verzauberung vorhanden ist, sonst wird nichts dazumultipliziert. Zum Schluss muss dann nur noch in allen Fällen die Wahrscheinlichkeit multipliziert werden, mit der das modified enchantment level dieses Falls vorkommt.
Jetzt habe ich für alle Fälle die Wahrscheinlichkeit berechnet und diese müssen nur noch im letzten Schritt ausgewertet werden. Der schwierigste Teil ist also geschafft, auch wenn der nächste länger bei der Berechnung braucht.
Im letzten Schritt musste ich diese Liste noch auswerten. Für jede mögliche Verzauberung und jede Stufe habe ich eine neue Variable eingeführt, um alle Verzauberungen einzeln betrachten zu können. Dafür habe ich für alle 11 • 1.111.110 Fälle alle 6 Verzauberungen überprüft und als erstes abgefragt, zu welcher Gruppe die Verzauberung jeweils gehört.
Für jede Verzauberung innerhalb dieser Gruppe habe ich dann eine Wahrscheinlichkeit addiert. Zuvor aber noch eine Erklärung. Auf dieser Seite im englischen MInecraft-Wiki ist in Abhängigkeit vom modified enchantment level aufgelistet, welche Stufe eine Verzauberung hat. Wenn sich zwei Bereiche überlappen, so wird die bessere Stufe vergeben.
Bei Verzauberungen mit nur einer möglichen Stufe wird die Wahrscheinlichkeit dieses Falls mit Gewichtung dieser Verzauberung/Summe der Gewichtungen aller Verzauberungen dieser Gruppe multipliziert und das Ergebnis wird dann zur Gesamtwahrscheinlichkeit dieser Verzauberung addiert. Bei Verzauberungen mit zwei möglichen Stufen (drei verschiedene Stufen sind laut den Zahlen im Minecraft-Wiki nicht möglich) passiert zwar das gleiche, es wird aber vorher noch unterschieden, in welchem Bereich das modified enchantment level liegt. Damit wird unterschieden, auf welche Stufe der Verzauberung die Wahrscheinlichkeit dieses Falls addiert werden muss. Für die drei Gruppen, in denen eine Verzauberung nur bis zu einem bestimmten modified enchantment level erhaltbar ist, wird noch eine weitere Unterscheidung gemacht, denn die Wahrscheinlichkeiten werden dadurch beeinflusst.
Damit ist das Programm fast fertig. Die Ergebnisse der Wahrscheinlichkeiten müssen nur noch ausgegeben werden. Zusätzlich berechne ich auch noch die Wahrscheinlichkeit für reine Reparatur-Bücher. Dafür frage ich zusätzlich ab, ob an zweiter Stelle eine Verzauberung ist. Wenn nein, dann mache ich das gleiche wie bei den anderen Verzauberungen auch, denn nur dann ist es auch ein reines Reparatur-Buch. Außerdem berechne ich die Summe der Wahrscheinlichkeiten aller Fälle und die Summe der Wahrscheinlichkeiten aller Verzauberungen (reines Reparatur nicht mit einberechnet). Das dient zur Überprüfung und sollte dann 1 als Summe und 1,887 als Summe (durchschnittliche Anzahl von Verzauberungen auf einem Buch) ergeben.
Für jede Verzauberung innerhalb dieser Gruppe habe ich dann eine Wahrscheinlichkeit addiert. Zuvor aber noch eine Erklärung. Auf dieser Seite im englischen MInecraft-Wiki ist in Abhängigkeit vom modified enchantment level aufgelistet, welche Stufe eine Verzauberung hat. Wenn sich zwei Bereiche überlappen, so wird die bessere Stufe vergeben.
Bei Verzauberungen mit nur einer möglichen Stufe wird die Wahrscheinlichkeit dieses Falls mit Gewichtung dieser Verzauberung/Summe der Gewichtungen aller Verzauberungen dieser Gruppe multipliziert und das Ergebnis wird dann zur Gesamtwahrscheinlichkeit dieser Verzauberung addiert. Bei Verzauberungen mit zwei möglichen Stufen (drei verschiedene Stufen sind laut den Zahlen im Minecraft-Wiki nicht möglich) passiert zwar das gleiche, es wird aber vorher noch unterschieden, in welchem Bereich das modified enchantment level liegt. Damit wird unterschieden, auf welche Stufe der Verzauberung die Wahrscheinlichkeit dieses Falls addiert werden muss. Für die drei Gruppen, in denen eine Verzauberung nur bis zu einem bestimmten modified enchantment level erhaltbar ist, wird noch eine weitere Unterscheidung gemacht, denn die Wahrscheinlichkeiten werden dadurch beeinflusst.
Damit ist das Programm fast fertig. Die Ergebnisse der Wahrscheinlichkeiten müssen nur noch ausgegeben werden. Zusätzlich berechne ich auch noch die Wahrscheinlichkeit für reine Reparatur-Bücher. Dafür frage ich zusätzlich ab, ob an zweiter Stelle eine Verzauberung ist. Wenn nein, dann mache ich das gleiche wie bei den anderen Verzauberungen auch, denn nur dann ist es auch ein reines Reparatur-Buch. Außerdem berechne ich die Summe der Wahrscheinlichkeiten aller Fälle und die Summe der Wahrscheinlichkeiten aller Verzauberungen (reines Reparatur nicht mit einberechnet). Das dient zur Überprüfung und sollte dann 1 als Summe und 1,887 als Summe (durchschnittliche Anzahl von Verzauberungen auf einem Buch) ergeben.
Damit sind die Berechnungen fertig und die Ergebnisse können in die Liste hier im Forum eingetragen werden. Sollten mit neuen Versionen auch neue Verzauberungen hinzukommen, so muss ich das Programm daran anpassen, was aber nicht viel Arbeit sein sollte. Das Ändern aller Wahrscheinlichkeit in der Liste hier im Forum wird da wahrscheinlich länger dauern.
Jetzt wisst ihr ungefähr, wie die Verzauberungen von Verzauberten Büchern vergeben werden und wie ich die Wahrscheinlichkeit für Reparatur und die anderen Dinge berechnet habe. Solltet ihr nicht alles verstanden haben, dann ist das natürlich nicht schlimm, denn dieses Thema ist nunmal sehr komplex und bevor ich diesen Beitrag geschrieben habe, wusste es ja auch niemand

Bei Fragen und anderen Anliegen einfach mich anschreiben
maua1

Zuletzt bearbeitet: