Permutationen IV

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

Permutations2.m2
PROCEDURE GenPermutations(k, n: CARDINAL; perm: Permutation);
   (* perm[n-k+1..n] ist festgelegt,
      wobei perm[n-k+2..n] noch jeweils
      um 1 zu erhoehen sind, falls sie >= perm[n-k+1] sind,

      generiere alle Varianten fuer perm[1..n-k]
   *)
   VAR
      eingefuegt: CARDINAL;
      i: CARDINAL;
BEGIN
   IF k > 1 THEN
      eingefuegt := perm[n-k+1];
      FOR i := n-k+2 TO n DO
         IF perm[i] >= eingefuegt THEN
            INC(perm[i]);
         END;
      END;
   END;
   IF k = n THEN
      GenPermutation(perm, n);
   ELSE
      FOR i := 1 TO k+1 DO
         perm[n-k] := i;
         GenPermutations(k + 1, n, perm);
      END;
   END;
END GenPermutations;

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999