Original BEGIN gewonnenOhneWechsel := 0 gewonnenMitWechsel := 0 n := 1000000 REPEAT n TIMES auto := RANDOM(0..2) wahl := RANDOM(0..2) IF wahl == auto THEN gezeigt := (RANDOM(1..2) + wahl) MOD 3 ELSE gezeigt := (3 - wahl - auto) MOD 3 END IF IF wahl == auto THEN gewonnenOhneWechsel := gewonnenOhneWechsel + 1 END IF wechsel := (3 - wahl - gezeigt) MOD 3 IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF END REPEAT PRINT "ohne Wechsel ", gewonnenOhneWechsel*100. / n, "%" PRINT "mit Wechsel ", gewonnenMitWechsel*100. / n, "%" END Kopieren des Teiles IF wahl == auto THEN gewonnenOhneWechsel := gewonnenOhneWechsel + 1 END IF wechsel := (3 - wahl - gezeigt) MOD 3 IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF in beide Teile der IF-Abfrage. BEGIN gewonnenOhneWechsel := 0 gewonnenMitWechsel := 0 n := 1000000 REPEAT n TIMES auto := RANDOM(0..2) wahl := RANDOM(0..2) IF wahl == auto THEN gezeigt := (RANDOM(1..2) + wahl) MOD 3 IF wahl == auto THEN gewonnenOhneWechsel := gewonnenOhneWechsel + 1 END IF wechsel := (3 - wahl - gezeigt) MOD 3 IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF ELSE gezeigt := (3 - wahl - auto) MOD 3 IF wahl == auto THEN gewonnenOhneWechsel := gewonnenOhneWechsel + 1 END IF wechsel := (3 - wahl - gezeigt) MOD 3 IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF END IF IF wahl == auto THEN gewonnenOhneWechsel := gewonnenOhneWechsel + 1 END IF wechsel := (3 - wahl - gezeigt) MOD 3 IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF END REPEAT PRINT "ohne Wechsel ", gewonnenOhneWechsel*100. / n, "%" PRINT "mit Wechsel ", gewonnenMitWechsel*100. / n, "%" END Reduzieren bzw. Entfernen von IF wahl == auto THEN gewonnenOhneWechsel := gewonnenOhneWechsel + 1 END IF BEGIN gewonnenOhneWechsel := 0 gewonnenMitWechsel := 0 n := 1000000 REPEAT n TIMES auto := RANDOM(0..2) wahl := RANDOM(0..2) IF wahl == auto THEN gezeigt := (RANDOM(1..2) + wahl) MOD 3 IF wahl == auto THEN gewonnenOhneWechsel := gewonnenOhneWechsel + 1 END IF wechsel := (3 - wahl - gezeigt) MOD 3 IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF ELSE gezeigt := (3 - wahl - auto) MOD 3 IF wahl == auto THEN gewonnenOhneWechsel := gewonnenOhneWechsel + 1 END IF wechsel := (3 - wahl - gezeigt) MOD 3 IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF END IF END REPEAT PRINT "ohne Wechsel ", gewonnenOhneWechsel*100. / n, "%" PRINT "mit Wechsel ", gewonnenMitWechsel*100. / n, "%" END Entfernen von MOD 3 an den Stellen, wo sich sowieso nur Zahlen zwischen 0 und 2 ergeben BEGIN gewonnenOhneWechsel := 0 gewonnenMitWechsel := 0 n := 1000000 REPEAT n TIMES auto := RANDOM(0..2) wahl := RANDOM(0..2) IF wahl == auto THEN gezeigt := (RANDOM(1..2) + wahl) MOD 3 gewonnenOhneWechsel := gewonnenOhneWechsel + 1 END IF wechsel := (3 - wahl - gezeigt) MOD 3 IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF ELSE gezeigt := (3 - wahl - auto) MOD 3 wechsel := (3 - wahl - gezeigt) MOD 3 IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF END IF END REPEAT PRINT "ohne Wechsel ", gewonnenOhneWechsel*100. / n, "%" PRINT "mit Wechsel ", gewonnenMitWechsel*100. / n, "%" END Einsetzen von gezeigt := 3 - wahl - auto in wechsel := 3 - wahl - gezeigt BEGIN gewonnenOhneWechsel := 0 gewonnenMitWechsel := 0 n := 1000000 REPEAT n TIMES auto := RANDOM(0..2) wahl := RANDOM(0..2) IF wahl == auto THEN gezeigt := (RANDOM(1..2) + wahl) MOD 3 gewonnenOhneWechsel := gewonnenOhneWechsel + 1 END IF wechsel := 3 - wahl - gezeigt IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF ELSE gezeigt := 3 - wahl - auto wechsel := 3 - wahl - gezeigt wechsel := 3 - wahl - (3 - wahl - auto) IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF END IF END REPEAT PRINT "ohne Wechsel ", gewonnenOhneWechsel*100. / n, "%" PRINT "mit Wechsel ", gewonnenMitWechsel*100. / n, "%" END Auflösen von wechsel := 3 - wahl - (3 - wahl - auto) BEGIN gewonnenOhneWechsel := 0 gewonnenMitWechsel := 0 n := 1000000 REPEAT n TIMES auto := RANDOM(0..2) wahl := RANDOM(0..2) IF wahl == auto THEN gezeigt := (RANDOM(1..2) + wahl) MOD 3 gewonnenOhneWechsel := gewonnenOhneWechsel + 1 END IF wechsel := 3 - wahl - gezeigt IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF ELSE wechsel := 3 - wahl - (3 - wahl - auto) wechsel := auto IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF END IF END REPEAT PRINT "ohne Wechsel ", gewonnenOhneWechsel*100. / n, "%" PRINT "mit Wechsel ", gewonnenMitWechsel*100. / n, "%" END Eliminieren von wechsel := auto IF wechsel == auto THEN BEGIN gewonnenOhneWechsel := 0 gewonnenMitWechsel := 0 n := 1000000 REPEAT n TIMES auto := RANDOM(0..2) wahl := RANDOM(0..2) IF wahl == auto THEN gezeigt := (RANDOM(1..2) + wahl) MOD 3 gewonnenOhneWechsel := gewonnenOhneWechsel + 1 END IF wechsel := 3 - wahl - gezeigt IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF ELSE wechsel := auto IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF END IF END REPEAT PRINT "ohne Wechsel ", gewonnenOhneWechsel*100. / n, "%" PRINT "mit Wechsel ", gewonnenMitWechsel*100. / n, "%" END Innerhalb von IF wahl == auto THEN wahl durch auto ersetzen BEGIN gewonnenOhneWechsel := 0 gewonnenMitWechsel := 0 n := 1000000 REPEAT n TIMES auto := RANDOM(0..2) wahl := RANDOM(0..2) IF wahl == auto THEN gezeigt := (RANDOM(1..2) + autowahl) MOD 3 gewonnenOhneWechsel := gewonnenOhneWechsel + 1 END IF wechsel := 3 - autowahl - gezeigt IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF ELSE gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF END IF END REPEAT PRINT "ohne Wechsel ", gewonnenOhneWechsel*100. / n, "%" PRINT "mit Wechsel ", gewonnenMitWechsel*100. / n, "%" END Jetzt muss ich leider erstmal abbrechen, aber es wäre nur noch zu zeigen, dass aufgrund der Definitionen von gezeigt und wechsel immer gilt wechsel < > auto und damit BEGIN gewonnenOhneWechsel := 0 gewonnenMitWechsel := 0 n := 1000000 REPEAT n TIMES auto := RANDOM(0..2) wahl := RANDOM(0..2) IF wahl == auto THEN gezeigt := (RANDOM(1..2) + auto) MOD 3 gewonnenOhneWechsel := gewonnenOhneWechsel + 1 END IF wechsel := 3 - auto - gezeigt IF wechsel == auto THEN gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF ELSE gewonnenMitWechsel := gewonnenMitWechsel + 1 END IF END IF END REPEAT PRINT "ohne Wechsel ", gewonnenOhneWechsel*100. / n, "%" PRINT "mit Wechsel ", gewonnenMitWechsel*100. / n, "%" END Womit bereits im Quellcode die Verteilung klar wird - ich würde mich freuen, wenn jemand den fehlenden Schritt nachreichen kann ... -- Calvini 16:58, 20. Apr 2006 (CEST)