#include "MusimatChapter9.h"
Go to the source code of this file.
Functions | |
MusimatChapter9Section (C091201c) | |
Integer | permute (IntegerList L, Integer Reference pos, Integer Reference count, Integer inc) |
Static Void | para1 () |
MusimatChapter9Section | ( | C091201c | ) |
Definition at line 2 of file C091201c.cpp.
References para1().
{ Print("*** Permutation ***"); /***************************************************************************** Permutation Iterate the supplied sequence in prime order until exhausted, then permute the entire row by inc steps and repeat from the beginning. *****************************************************************************/ para1(); // Step into this function to continue. }
Static Void para1 | ( | ) |
Definition at line 26 of file C091201c.cpp.
References permute().
{ /***************************************************************************** Here is an example of invoking permute(). *****************************************************************************/ Print("*** Permutation ***"); IntegerList L(10, 11, 12); Integer inc = -1; Integer pos = 0; Integer perm = 0; For (Integer i = 0; i < 3 * Length(L); i++) { Print(permute(L, pos, perm, inc)); } /***************************************************************************** prints 10, 11, 12, 11, 12, 10, 12, 10, 11. Because inc = -1, it skips back one place in the row every time. The trigger for it to skip is when it has output as many elements as are in the list. *****************************************************************************/ }
Integer permute | ( | IntegerList | L, |
Integer Reference | pos, | ||
Integer Reference | count, | ||
Integer | inc | ||
) |
Definition at line 14 of file C091201c.cpp.
References cycle().
{ Integer curPos = pos; // save current position Integer x = cycle(L, pos, 1); // update pos and get list value count = count + 1; // increment counter If (count == Length(L)) { // have we output L items from list? count = 0; // reset count pos = curPos + inc; // permute position for next time } Return(x); }