- Registriert
- 17 März 2001
- Beiträge
- 9.114
- Punkte Reaktionen
- 0
Eigentlich ist's mir egal, ob Code oder Pseudocode, solange es lesbar bleibt. Hab' ATM selbst das Problem, dass ich ich vor ca. 600 Zeilen Code sitze den ich nicht selbst verbrochen habe und der ziemlich mies dokumentiert ist - zum Gkück hat Eclipse einen Autoformater, sonst wäre ich verloren.
Nun aber zu deinem Code. Der erste Schnipsel scheint mir so richtig zu sein.
Bei zweiten hab' auf den ersten (recht kurzen) Blick kleine Zweifel, z.B. hier:
Code:
var newchance = (drops[i].prob / sumprob);
[b]if (picks > 1)[/b] newchance = 1 - (1-newchance) ^ (picks * parentpicks);
newchance *= chance;
Als Beispiel sei folgendes genannt:
TC 1 - Picks -2 - Pick1 TC 2 - Prob1 2
TC 2 - Picks 1 - Pick1 a - Prob1 1 - Pick2 b - Prob2 1
In diesem Fall ist die Chance auf mind. 1 a = 1 - (1 - 1/2)^2 = 3/4. Bei dir wäre sie aber nur 1/2.
Mit dem else-Zweig des if-Satements komme ich irgendwie nicht zu recht: in der for-Schleife steht als Guard-Condition (picks > 0), allerdings liefert diese Bedingungn aufgrund der Vorbedingung immer false, denn man gelangt nur dann in den else-Zweig wenn Picks < 0 gilt. Aber sonst scheint die Schleife i.O.
Allerdings ist das alles erstmal unter Vorbehalt, da ATM meine Gedanken sich um die oben erwähnten 600 Zeilen Code drehen, da das dazu gehörende Programm bis Freitag 10 Uhr stehen muss
>neuer Calc (mit picks)
>Chance: 0.0008763% (1:114113)
9.799174146229994E-6
Das liegt wohl an dem erwähnten if-Statement
Gruss