Leser: 20
1 2 3 4 5 6 7 8 9 10 11 12
@matrix=([0,1,2],[3,4,5],[6,7,8]); for $l (0..2){ for $k (0..2){ unless ($k==$l){ for $j (0..2){ unless (($j==$k) || ($j==$l)){ print "mach was mit $matrix[0][$l], $matrix[1][$k], $matrix[2][$j]\n"; } } } } }
2010-06-21T08:10:33 Sven_123Ich möchte alle möglichen Kombinationen von Matrixelementen haben, bei denen alle Zeilen und Spalten nur jeweils einmal vorkommen. Die einfachste Möglichkeit sind, denke ich verschachtelte foreach-Schleifen, bei denen ich in den inneren Schleifen die außen benutzten Elemente nicht mehr benutze. [...]
QuoteDa hab ich aber weder im Buch, noch im Wiki, oder der perldoc einen Ausdruck für gefunden (wobei mir auch keine wirklich passenden Suchwörter einfallen). Das ^ der Regex geht aufjedenfall nicht (ein "(1..10^5)" gibt ein (1..15) - da muss ich auch nochmal suchen, warum*g).
[...]
1 2 3 4 5 6 7 8 9 10 11
use 5.012; use List::Util qw[min max]; for my $l (0..2) { for my $k (0..($l-1), ($l+1)..2) { my ($j1, $j2) = (min($l, $k), max($l, $k)); for my $j (0..($j1-1), ($j1+1)..($j2-1), ($j2+1)..2) { say "l = $l, k = $k, j = $j"; } } }
Quote[...] die unless-Schleifen [...]