Thread Zahlenbereich mit Ausnahmen definieren? (z.B. 1-10 ohne 5) (4 answers)
Opened by Sven_123 at 2010-06-21 10:10

Sven_123
 2010-06-21 10:10
#138545 #138545
User since
2010-06-01
120 Artikel
BenutzerIn
[default_avatar]
Ich 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. Da 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).

Meine, wie ich finde etwas umständliche Lösung wäre:
Code (perl): (dl )
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";
        }
      }
    }
  }
}


Geht zwar noch, aber vor allem bei größeren Matrizen wäre es nett, die unless-Schleifen gleich in das for einbauen zu können.

View full thread Zahlenbereich mit Ausnahmen definieren? (z.B. 1-10 ohne 5)