PHP :: Aufgabe #6 :: Lösung #1
1 Lösung

#6
Lotto - Simulation - 6 aus 49
Anfänger - PHP
von Gustl
- 25.11.2012 um 16:16 Uhr
Schreiben Sie ein Programm, welches 6 Zahlen zwischen 1 und 49 abfrägt. Danach soll das Programm solange 6 Zufallszahlen berechnen bis alle 6 eingegebenen Zahlen übereinstimmen. Natürlich darf eine Zahl nicht zweimal vorkommen.
Dann soll ausgegeben werden nach wie vielen "Spielen" ein 6er erzielt wurde und wie hoch die Chance auf einen 3er, einen 4er und einen 5er war.
Dann soll ausgegeben werden nach wie vielen "Spielen" ein 6er erzielt wurde und wie hoch die Chance auf einen 3er, einen 4er und einen 5er war.
#1

von Ministry (520 Punkte)
- 30.12.2012 um 19:21 Uhr
Eigentlich nicht Webspace-Tauglich, aber ich poste es trotzdem Mal.
Im CLI hat der Script-Durchlauf 3-4 Minuten gedauert für 7,6 Mio. Ziehungen.
PHP-Code
Im CLI hat der Script-Durchlauf 3-4 Minuten gedauert für 7,6 Mio. Ziehungen.

$ergebnis = "Bitte geben Sie zuerst 6 unterschiedliche Zahlen zwischen 1 und 49 ein"; function check_values() { $chkarr = $_POST['zahl']; rsort($chkarr); if (count(array_unique($chkarr)) != 6 || in_array(0, $chkarr) || $chkarr[0] > 49) return false; return true; } if(isset($_POST['submit']) && check_values()) { $tip = $_POST['zahl']; sort($tip); $lotto = range(1, 49); $nojack = array(3 => 0, 4 => 0, 5 => 0); $zahlen = array(); $treffer = 0; $ziehung = 1; while (1) { $zahlen = array_rand($lotto, 6); $treffer = 6 - count(array_diff($tip, $zahlen)); if ($treffer == 6) break; elseif ($treffer > 2) $nojack[$treffer]++; $ziehung++; } $ergebnis = <<<EOF Ihr Tip: {$tip[0]}, {$tip[1]}, {$tip[2]}, {$tip[3]}, {$tip[4]}, {$tip[5]}.<br /> Sie hatten 6 Richtige nach {$ziehung} Ziehungen!<br /> In allen Ziehungen hatten Sie:<br /> {$nojack[5]} x 5 Richtige,<br /> {$nojack[4]} x 4 Richtige,<br /> {$nojack[3]} x 3 Richtige. EOF; } echo <<<EOF <form action="test2.php" method="post"> Zahl 1:<br /> <input type="text" name="zahl[]" value="" /><br /><br /> Zahl 2:<br /> <input type="text" name="zahl[]" value="" /><br /><br /> Zahl 3:<br /> <input type="text" name="zahl[]" value="" /><br /><br /> Zahl 4:<br /> <input type="text" name="zahl[]" value="" /><br /><br /> Zahl 5:<br /> <input type="text" name="zahl[]" value="" /><br /><br /> Zahl 6:<br /> <input type="text" name="zahl[]" value="" /><br /><br /> <input type="submit" name="submit" value="Lottoziehung starten" /><br /> </form> <p>Lösung:<br /> {$ergebnis} </p> EOF;
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1