// output of ./demo/comb/perm-gray-wells-demo.cc: // Description: //% Two Gray codes for permutations (Wells' order and a variant of it), CAT algorithm. arg 1: 5 == n [Number of elements to permute] default=5 arg 2: 0 == r [Ordering: 0 ==> Wells' order == Lipski(8), 1 ==> Lipski(14), 2 ==> Lipski(15)] default=0 1: [ . 1 2 3 4 ] (0, 0) [ . . . . ] [ . 1 2 3 4 ] 2: [ 1 . 2 3 4 ] (1, 0) [ 1 . . . ] [ 1 . 2 3 4 ] 3: [ 1 2 . 3 4 ] (2, 1) [ . 1 . . ] [ 2 . 1 3 4 ] 4: [ 2 1 . 3 4 ] (1, 0) [ 1 1 . . ] [ 2 1 . 3 4 ] 5: [ 2 . 1 3 4 ] (2, 1) [ . 2 . . ] [ 1 2 . 3 4 ] 6: [ . 2 1 3 4 ] (1, 0) [ 1 2 . . ] [ . 2 1 3 4 ] 7: [ . 2 3 1 4 ] (3, 2) [ . . 1 . ] [ . 3 1 2 4 ] 8: [ 2 . 3 1 4 ] (1, 0) [ 1 . 1 . ] [ 1 3 . 2 4 ] 9: [ 2 3 . 1 4 ] (2, 1) [ . 1 1 . ] [ 2 3 . 1 4 ] 10: [ 3 2 . 1 4 ] (1, 0) [ 1 1 1 . ] [ 2 3 1 . 4 ] 11: [ 3 . 2 1 4 ] (2, 1) [ . 2 1 . ] [ 1 3 2 . 4 ] 12: [ . 3 2 1 4 ] (1, 0) [ 1 2 1 . ] [ . 3 2 1 4 ] 13: [ . 3 1 2 4 ] (3, 2) [ . . 2 . ] [ . 2 3 1 4 ] 14: [ 3 . 1 2 4 ] (1, 0) [ 1 . 2 . ] [ 1 2 3 . 4 ] 15: [ 3 1 . 2 4 ] (2, 1) [ . 1 2 . ] [ 2 1 3 . 4 ] 16: [ 1 3 . 2 4 ] (1, 0) [ 1 1 2 . ] [ 2 . 3 1 4 ] 17: [ 1 . 3 2 4 ] (2, 1) [ . 2 2 . ] [ 1 . 3 2 4 ] 18: [ . 1 3 2 4 ] (1, 0) [ 1 2 2 . ] [ . 1 3 2 4 ] 19: [ 2 1 3 . 4 ] (3, 0) [ . . 3 . ] [ 3 1 . 2 4 ] 20: [ 1 2 3 . 4 ] (1, 0) [ 1 . 3 . ] [ 3 . 1 2 4 ] 21: [ 1 3 2 . 4 ] (2, 1) [ . 1 3 . ] [ 3 . 2 1 4 ] 22: [ 3 1 2 . 4 ] (1, 0) [ 1 1 3 . ] [ 3 1 2 . 4 ] 23: [ 3 2 1 . 4 ] (2, 1) [ . 2 3 . ] [ 3 2 1 . 4 ] 24: [ 2 3 1 . 4 ] (1, 0) [ 1 2 3 . ] [ 3 2 . 1 4 ] 25: [ 2 3 1 4 . ] (4, 3) [ . . . 1 ] [ 4 2 . 1 3 ] 26: [ 3 2 1 4 . ] (1, 0) [ 1 . . 1 ] [ 4 2 1 . 3 ] 27: [ 3 1 2 4 . ] (2, 1) [ . 1 . 1 ] [ 4 1 2 . 3 ] 28: [ 1 3 2 4 . ] (1, 0) [ 1 1 . 1 ] [ 4 . 2 1 3 ] 29: [ 1 2 3 4 . ] (2, 1) [ . 2 . 1 ] [ 4 . 1 2 3 ] 30: [ 2 1 3 4 . ] (1, 0) [ 1 2 . 1 ] [ 4 1 . 2 3 ] 31: [ 2 1 4 3 . ] (3, 2) [ . . 1 1 ] [ 4 1 . 3 2 ] 32: [ 1 2 4 3 . ] (1, 0) [ 1 . 1 1 ] [ 4 . 1 3 2 ] 33: [ 1 4 2 3 . ] (2, 1) [ . 1 1 1 ] [ 4 . 2 3 1 ] 34: [ 4 1 2 3 . ] (1, 0) [ 1 1 1 1 ] [ 4 1 2 3 . ] 35: [ 4 2 1 3 . ] (2, 1) [ . 2 1 1 ] [ 4 2 1 3 . ] 36: [ 2 4 1 3 . ] (1, 0) [ 1 2 1 1 ] [ 4 2 . 3 1 ] 37: [ 2 4 3 1 . ] (3, 2) [ . . 2 1 ] [ 4 3 . 2 1 ] 38: [ 4 2 3 1 . ] (1, 0) [ 1 . 2 1 ] [ 4 3 1 2 . ] 39: [ 4 3 2 1 . ] (2, 1) [ . 1 2 1 ] [ 4 3 2 1 . ] 40: [ 3 4 2 1 . ] (1, 0) [ 1 1 2 1 ] [ 4 3 2 . 1 ] 41: [ 3 2 4 1 . ] (2, 1) [ . 2 2 1 ] [ 4 3 1 . 2 ] 42: [ 2 3 4 1 . ] (1, 0) [ 1 2 2 1 ] [ 4 3 . 1 2 ] 43: [ 1 3 4 2 . ] (3, 0) [ . . 3 1 ] [ 4 . 3 1 2 ] 44: [ 3 1 4 2 . ] (1, 0) [ 1 . 3 1 ] [ 4 1 3 . 2 ] 45: [ 3 4 1 2 . ] (2, 1) [ . 1 3 1 ] [ 4 2 3 . 1 ] 46: [ 4 3 1 2 . ] (1, 0) [ 1 1 3 1 ] [ 4 2 3 1 . ] 47: [ 4 1 3 2 . ] (2, 1) [ . 2 3 1 ] [ 4 1 3 2 . ] 48: [ 1 4 3 2 . ] (1, 0) [ 1 2 3 1 ] [ 4 . 3 2 1 ] 49: [ 1 4 3 . 2 ] (4, 3) [ . . . 2 ] [ 3 . 4 2 1 ] 50: [ 4 1 3 . 2 ] (1, 0) [ 1 . . 2 ] [ 3 1 4 2 . ] 51: [ 4 3 1 . 2 ] (2, 1) [ . 1 . 2 ] [ 3 2 4 1 . ] 52: [ 3 4 1 . 2 ] (1, 0) [ 1 1 . 2 ] [ 3 2 4 . 1 ] 53: [ 3 1 4 . 2 ] (2, 1) [ . 2 . 2 ] [ 3 1 4 . 2 ] 54: [ 1 3 4 . 2 ] (1, 0) [ 1 2 . 2 ] [ 3 . 4 1 2 ] 55: [ 1 3 . 4 2 ] (3, 2) [ . . 1 2 ] [ 2 . 4 1 3 ] 56: [ 3 1 . 4 2 ] (1, 0) [ 1 . 1 2 ] [ 2 1 4 . 3 ] 57: [ 3 . 1 4 2 ] (2, 1) [ . 1 1 2 ] [ 1 2 4 . 3 ] 58: [ . 3 1 4 2 ] (1, 0) [ 1 1 1 2 ] [ . 2 4 1 3 ] 59: [ . 1 3 4 2 ] (2, 1) [ . 2 1 2 ] [ . 1 4 2 3 ] 60: [ 1 . 3 4 2 ] (1, 0) [ 1 2 1 2 ] [ 1 . 4 2 3 ] 61: [ 1 . 4 3 2 ] (3, 2) [ . . 2 2 ] [ 1 . 4 3 2 ] 62: [ . 1 4 3 2 ] (1, 0) [ 1 . 2 2 ] [ . 1 4 3 2 ] 63: [ . 4 1 3 2 ] (2, 1) [ . 1 2 2 ] [ . 2 4 3 1 ] 64: [ 4 . 1 3 2 ] (1, 0) [ 1 1 2 2 ] [ 1 2 4 3 . ] 65: [ 4 1 . 3 2 ] (2, 1) [ . 2 2 2 ] [ 2 1 4 3 . ] 66: [ 1 4 . 3 2 ] (1, 0) [ 1 2 2 2 ] [ 2 . 4 3 1 ] 67: [ 3 4 . 1 2 ] (3, 0) [ . . 3 2 ] [ 2 3 4 . 1 ] 68: [ 4 3 . 1 2 ] (1, 0) [ 1 . 3 2 ] [ 2 3 4 1 . ] 69: [ 4 . 3 1 2 ] (2, 1) [ . 1 3 2 ] [ 1 3 4 2 . ] 70: [ . 4 3 1 2 ] (1, 0) [ 1 1 3 2 ] [ . 3 4 2 1 ] 71: [ . 3 4 1 2 ] (2, 1) [ . 2 3 2 ] [ . 3 4 1 2 ] 72: [ 3 . 4 1 2 ] (1, 0) [ 1 2 3 2 ] [ 1 3 4 . 2 ] 73: [ 3 . 4 2 1 ] (4, 3) [ . . . 3 ] [ 1 4 3 . 2 ] 74: [ . 3 4 2 1 ] (1, 0) [ 1 . . 3 ] [ . 4 3 1 2 ] 75: [ . 4 3 2 1 ] (2, 1) [ . 1 . 3 ] [ . 4 3 2 1 ] 76: [ 4 . 3 2 1 ] (1, 0) [ 1 1 . 3 ] [ 1 4 3 2 . ] 77: [ 4 3 . 2 1 ] (2, 1) [ . 2 . 3 ] [ 2 4 3 1 . ] 78: [ 3 4 . 2 1 ] (1, 0) [ 1 2 . 3 ] [ 2 4 3 . 1 ] 79: [ 3 4 2 . 1 ] (3, 2) [ . . 1 3 ] [ 3 4 2 . 1 ] 80: [ 4 3 2 . 1 ] (1, 0) [ 1 . 1 3 ] [ 3 4 2 1 . ] 81: [ 4 2 3 . 1 ] (2, 1) [ . 1 1 3 ] [ 3 4 1 2 . ] 82: [ 2 4 3 . 1 ] (1, 0) [ 1 1 1 3 ] [ 3 4 . 2 1 ] 83: [ 2 3 4 . 1 ] (2, 1) [ . 2 1 3 ] [ 3 4 . 1 2 ] 84: [ 3 2 4 . 1 ] (1, 0) [ 1 2 1 3 ] [ 3 4 1 . 2 ] 85: [ 3 2 . 4 1 ] (3, 2) [ . . 2 3 ] [ 2 4 1 . 3 ] 86: [ 2 3 . 4 1 ] (1, 0) [ 1 . 2 3 ] [ 2 4 . 1 3 ] 87: [ 2 . 3 4 1 ] (2, 1) [ . 1 2 3 ] [ 1 4 . 2 3 ] 88: [ . 2 3 4 1 ] (1, 0) [ 1 1 2 3 ] [ . 4 1 2 3 ] 89: [ . 3 2 4 1 ] (2, 1) [ . 2 2 3 ] [ . 4 2 1 3 ] 90: [ 3 . 2 4 1 ] (1, 0) [ 1 2 2 3 ] [ 1 4 2 . 3 ] 91: [ 4 . 2 3 1 ] (3, 0) [ . . 3 3 ] [ 1 4 2 3 . ] 92: [ . 4 2 3 1 ] (1, 0) [ 1 . 3 3 ] [ . 4 2 3 1 ] 93: [ . 2 4 3 1 ] (2, 1) [ . 1 3 3 ] [ . 4 1 3 2 ] 94: [ 2 . 4 3 1 ] (1, 0) [ 1 1 3 3 ] [ 1 4 . 3 2 ] 95: [ 2 4 . 3 1 ] (2, 1) [ . 2 3 3 ] [ 2 4 . 3 1 ] 96: [ 4 2 . 3 1 ] (1, 0) [ 1 2 3 3 ] [ 2 4 1 3 . ] 97: [ 4 2 . 1 3 ] (4, 3) [ . . . 4 ] [ 2 3 1 4 . ] 98: [ 2 4 . 1 3 ] (1, 0) [ 1 . . 4 ] [ 2 3 . 4 1 ] 99: [ 2 . 4 1 3 ] (2, 1) [ . 1 . 4 ] [ 1 3 . 4 2 ] 100: [ . 2 4 1 3 ] (1, 0) [ 1 1 . 4 ] [ . 3 1 4 2 ] 101: [ . 4 2 1 3 ] (2, 1) [ . 2 . 4 ] [ . 3 2 4 1 ] 102: [ 4 . 2 1 3 ] (1, 0) [ 1 2 . 4 ] [ 1 3 2 4 . ] 103: [ 4 . 1 2 3 ] (3, 2) [ . . 1 4 ] [ 1 2 3 4 . ] 104: [ . 4 1 2 3 ] (1, 0) [ 1 . 1 4 ] [ . 2 3 4 1 ] 105: [ . 1 4 2 3 ] (2, 1) [ . 1 1 4 ] [ . 1 3 4 2 ] 106: [ 1 . 4 2 3 ] (1, 0) [ 1 1 1 4 ] [ 1 . 3 4 2 ] 107: [ 1 4 . 2 3 ] (2, 1) [ . 2 1 4 ] [ 2 . 3 4 1 ] 108: [ 4 1 . 2 3 ] (1, 0) [ 1 2 1 4 ] [ 2 1 3 4 . ] 109: [ 4 1 2 . 3 ] (3, 2) [ . . 2 4 ] [ 3 1 2 4 . ] 110: [ 1 4 2 . 3 ] (1, 0) [ 1 . 2 4 ] [ 3 . 2 4 1 ] 111: [ 1 2 4 . 3 ] (2, 1) [ . 1 2 4 ] [ 3 . 1 4 2 ] 112: [ 2 1 4 . 3 ] (1, 0) [ 1 1 2 4 ] [ 3 1 . 4 2 ] 113: [ 2 4 1 . 3 ] (2, 1) [ . 2 2 4 ] [ 3 2 . 4 1 ] 114: [ 4 2 1 . 3 ] (1, 0) [ 1 2 2 4 ] [ 3 2 1 4 . ] 115: [ . 2 1 4 3 ] (3, 0) [ . . 3 4 ] [ . 2 1 4 3 ] 116: [ 2 . 1 4 3 ] (1, 0) [ 1 . 3 4 ] [ 1 2 . 4 3 ] 117: [ 2 1 . 4 3 ] (2, 1) [ . 1 3 4 ] [ 2 1 . 4 3 ] 118: [ 1 2 . 4 3 ] (1, 0) [ 1 1 3 4 ] [ 2 . 1 4 3 ] 119: [ 1 . 2 4 3 ] (2, 1) [ . 2 3 4 ] [ 1 . 2 4 3 ] 120: [ . 1 2 4 3 ] (1, 0) [ 1 2 3 4 ] [ . 1 2 4 3 ] ct=120