// output of ./demo/comb/kperm-gray-demo.cc: // Description: //% Generate all k-permutations of n elements in minimal-change order //% via Gray code for falling factorial numbers, CAT algorithm. //% Same as: k-prefixes of permutations of n elements. //% Same as: arrangements of k out of n elements. arg 1: 5 == n [Total of n elements.] default=5 arg 2: 3 == k [Prefix length: Permutations of k elements (1<=k<=n).] default=3 0: [ . 1 2 ][ 3 4 ] (4, 3) [ . . . . ] [ . 1 2 3 4 ] 1: [ 1 . 2 ][ 3 4 ] (0, 1) [ 1 . . . ] [ 1 . 2 3 4 ] 2: [ 2 . 1 ][ 3 4 ] (1, 2) [ 2 . . . ] [ 1 2 . 3 4 ] 3: [ 3 . 1 ][ 2 4 ] (2, 3) [ 3 . . . ] [ 1 2 3 . 4 ] 4: [ 4 . 1 ][ 2 3 ] (3, 4) [ 4 . . . ] [ 1 2 3 4 . ] 5: [ 4 1 . ][ 2 3 ] (0, 1) [ 4 1 . . ] [ 2 1 3 4 . ] 6: [ 3 1 . ][ 2 4 ] (4, 3) [ 3 1 . . ] [ 2 1 3 . 4 ] 7: [ 2 1 . ][ 3 4 ] (3, 2) [ 2 1 . . ] [ 2 1 . 3 4 ] 8: [ 1 2 . ][ 3 4 ] (2, 1) [ 1 1 . . ] [ 2 . 1 3 4 ] 9: [ . 2 1 ][ 3 4 ] (1, 0) [ . 1 . . ] [ . 2 1 3 4 ] 10: [ . 3 1 ][ 2 4 ] (2, 3) [ . 2 . . ] [ . 2 3 1 4 ] 11: [ 1 3 . ][ 2 4 ] (0, 1) [ 1 2 . . ] [ 2 . 3 1 4 ] 12: [ 2 3 . ][ 1 4 ] (1, 2) [ 2 2 . . ] [ 2 3 . 1 4 ] 13: [ 3 2 . ][ 1 4 ] (2, 3) [ 3 2 . . ] [ 2 3 1 . 4 ] 14: [ 4 2 . ][ 1 3 ] (3, 4) [ 4 2 . . ] [ 2 3 1 4 . ] 15: [ 4 3 . ][ 1 2 ] (2, 3) [ 4 3 . . ] [ 2 3 4 1 . ] 16: [ 3 4 . ][ 1 2 ] (4, 3) [ 3 3 . . ] [ 2 3 4 . 1 ] 17: [ 2 4 . ][ 1 3 ] (3, 2) [ 2 3 . . ] [ 2 3 . 4 1 ] 18: [ 1 4 . ][ 2 3 ] (2, 1) [ 1 3 . . ] [ 2 . 3 4 1 ] 19: [ . 4 1 ][ 2 3 ] (1, 0) [ . 3 . . ] [ . 2 3 4 1 ] 20: [ . 4 2 ][ 1 3 ] (1, 2) [ . 3 1 . ] [ . 3 2 4 1 ] 21: [ 1 4 2 ][ . 3 ] (0, 1) [ 1 3 1 . ] [ 3 . 2 4 1 ] 22: [ 2 4 1 ][ . 3 ] (1, 2) [ 2 3 1 . ] [ 3 2 . 4 1 ] 23: [ 3 4 1 ][ . 2 ] (2, 3) [ 3 3 1 . ] [ 3 2 4 . 1 ] 24: [ 4 3 1 ][ . 2 ] (3, 4) [ 4 3 1 . ] [ 3 2 4 1 . ] 25: [ 4 2 1 ][ . 3 ] (3, 2) [ 4 2 1 . ] [ 3 2 1 4 . ] 26: [ 3 2 1 ][ . 4 ] (4, 3) [ 3 2 1 . ] [ 3 2 1 . 4 ] 27: [ 2 3 1 ][ . 4 ] (3, 2) [ 2 2 1 . ] [ 3 2 . 1 4 ] 28: [ 1 3 2 ][ . 4 ] (2, 1) [ 1 2 1 . ] [ 3 . 2 1 4 ] 29: [ . 3 2 ][ 1 4 ] (1, 0) [ . 2 1 . ] [ . 3 2 1 4 ] 30: [ . 2 3 ][ 1 4 ] (3, 2) [ . 1 1 . ] [ . 3 1 2 4 ] 31: [ 1 2 3 ][ . 4 ] (0, 1) [ 1 1 1 . ] [ 3 . 1 2 4 ] 32: [ 2 1 3 ][ . 4 ] (1, 2) [ 2 1 1 . ] [ 3 1 . 2 4 ] 33: [ 3 1 2 ][ . 4 ] (2, 3) [ 3 1 1 . ] [ 3 1 2 . 4 ] 34: [ 4 1 2 ][ . 3 ] (3, 4) [ 4 1 1 . ] [ 3 1 2 4 . ] 35: [ 4 . 2 ][ 1 3 ] (1, 0) [ 4 . 1 . ] [ 1 3 2 4 . ] 36: [ 3 . 2 ][ 1 4 ] (4, 3) [ 3 . 1 . ] [ 1 3 2 . 4 ] 37: [ 2 . 3 ][ 1 4 ] (3, 2) [ 2 . 1 . ] [ 1 3 . 2 4 ] 38: [ 1 . 3 ][ 2 4 ] (2, 1) [ 1 . 1 . ] [ 1 . 3 2 4 ] 39: [ . 1 3 ][ 2 4 ] (1, 0) [ . . 1 . ] [ . 1 3 2 4 ] 40: [ . 1 4 ][ 2 3 ] (3, 4) [ . . 2 . ] [ . 1 3 4 2 ] 41: [ 1 . 4 ][ 2 3 ] (0, 1) [ 1 . 2 . ] [ 1 . 3 4 2 ] 42: [ 2 . 4 ][ 1 3 ] (1, 2) [ 2 . 2 . ] [ 1 3 . 4 2 ] 43: [ 3 . 4 ][ 1 2 ] (2, 3) [ 3 . 2 . ] [ 1 3 4 . 2 ] 44: [ 4 . 3 ][ 1 2 ] (3, 4) [ 4 . 2 . ] [ 1 3 4 2 . ] 45: [ 4 1 3 ][ . 2 ] (0, 1) [ 4 1 2 . ] [ 3 1 4 2 . ] 46: [ 3 1 4 ][ . 2 ] (4, 3) [ 3 1 2 . ] [ 3 1 4 . 2 ] 47: [ 2 1 4 ][ . 3 ] (3, 2) [ 2 1 2 . ] [ 3 1 . 4 2 ] 48: [ 1 2 4 ][ . 3 ] (2, 1) [ 1 1 2 . ] [ 3 . 1 4 2 ] 49: [ . 2 4 ][ 1 3 ] (1, 0) [ . 1 2 . ] [ . 3 1 4 2 ] 50: [ . 3 4 ][ 1 2 ] (2, 3) [ . 2 2 . ] [ . 3 4 1 2 ] 51: [ 1 3 4 ][ . 2 ] (0, 1) [ 1 2 2 . ] [ 3 . 4 1 2 ] 52: [ 2 3 4 ][ . 1 ] (1, 2) [ 2 2 2 . ] [ 3 4 . 1 2 ] 53: [ 3 2 4 ][ . 1 ] (2, 3) [ 3 2 2 . ] [ 3 4 1 . 2 ] 54: [ 4 2 3 ][ . 1 ] (3, 4) [ 4 2 2 . ] [ 3 4 1 2 . ] 55: [ 4 3 2 ][ . 1 ] (2, 3) [ 4 3 2 . ] [ 3 4 2 1 . ] 56: [ 3 4 2 ][ . 1 ] (4, 3) [ 3 3 2 . ] [ 3 4 2 . 1 ] 57: [ 2 4 3 ][ . 1 ] (3, 2) [ 2 3 2 . ] [ 3 4 . 2 1 ] 58: [ 1 4 3 ][ . 2 ] (2, 1) [ 1 3 2 . ] [ 3 . 4 2 1 ] 59: [ . 4 3 ][ 1 2 ] (1, 0) [ . 3 2 . ] [ . 3 4 2 1 ]