Thread Bingokarten erstellen
(11 answers)
Opened by frankes at 2010-09-27 22:19
Hallo frankes,
die mögliche Anzahl verschiedener Kärtchen ist etwas geringer als von Dir berechnet, weil ja die Anordnung der Elemente gleichgültig ist. Die Wahrscheinlichkeit muss also wie bei den Lottozahlen "(n über k) ohne Zurücklegen" errechnet werden: n!/(k!*(n-k)!) Lottozahlen: 49!/(6!*(49-6)!) = 13.983.816 Bingokärtchen: 10!/(6!*(10-6)!) = 210 Hier das Script mit Wiederholungsvermeidung. Es funktioniert aber (natürlich) nur gut, wenn $anzahlKaertchen auf einen Wert deutlich unter 210 gesetzt wird: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #!/usr/bin/perl use strict; use warnings; my @begriffe = qw(eins zwei drei vier fuenf sechs sieben acht neun zehn); my $anzahlKaertchen = 200; # <-- max. 200 bitte! my %alleKaertchen; my $i = 1; while ($i <= $anzahlKaertchen) { my @vals = (0..9); my @kaertchen; for my $j (0..5) { my $rand = int(rand()*@vals); $kaertchen[$j] = $vals[$rand]; splice(@vals,$rand,1); } my $kaertchenID = join ("", sort @kaertchen); next if $alleKaertchen{$kaertchenID}; $alleKaertchen{$kaertchenID} = 1; print "Kaertchen Nr. " . $i . ":\n"; print "\t" . $begriffe[$_] . "\n" for @kaertchen; $i++; } Weiterhin ohne Überwachung der Verteilung. HTH Grüße payx |