// output of ./demo/comb/setpart-s-zero-map-rgs-demo.cc: // Description: //% Set partitions into sets of size <= s+1 represented as //% restricted growth strings (RGS): //% each digit a[k] is either zero or the (one-based) index //% of a zero in the prefix and there are at most s digits pointing //% to the same zero in the prefix. //% Same as: maps from {1, 2, 3, ..., n} to {0, 1, 2, 3, ..., n} //% such that f(x) < x and f(f(x)) == 0 and there are at most s //% values t such that f(t) = f(x). //% Lexicographic order. //% Cf. OEIS sequences A000085 (for s=1), A001680 (s=2), A001681 (s=3), //% A110038 (s=4), and A000110 (for s>=n-1). arg 1: 5 == n [set partitions (as RGS) of length n] default=5 arg 2: 2 == s [sets in the partitions of size at most s+1] default=2 1: [ . . . . . ] [ . 1 2 3 4 ] {1}, {2}, {3}, {4}, {5} 2: [ . . . . 1 ] [ . 1 2 3 . ] {1, 5}, {2}, {3}, {4} 3: [ . . . . 2 ] [ . 1 2 3 1 ] {1}, {2, 5}, {3}, {4} 4: [ . . . . 3 ] [ . 1 2 3 2 ] {1}, {2}, {3, 5}, {4} 5: [ . . . . 4 ] [ . 1 2 3 3 ] {1}, {2}, {3}, {4, 5} 6: [ . . . 1 . ] [ . 1 2 . 4 ] {1, 4}, {2}, {3}, {5} 7: [ . . . 1 1 ] [ . 1 2 . . ] {1, 4, 5}, {2}, {3} 8: [ . . . 1 2 ] [ . 1 2 . 1 ] {1, 4}, {2, 5}, {3} 9: [ . . . 1 3 ] [ . 1 2 . 2 ] {1, 4}, {2}, {3, 5} 10: [ . . . 2 . ] [ . 1 2 1 4 ] {1}, {2, 4}, {3}, {5} 11: [ . . . 2 1 ] [ . 1 2 1 . ] {1, 5}, {2, 4}, {3} 12: [ . . . 2 2 ] [ . 1 2 1 1 ] {1}, {2, 4, 5}, {3} 13: [ . . . 2 3 ] [ . 1 2 1 2 ] {1}, {2, 4}, {3, 5} 14: [ . . . 3 . ] [ . 1 2 2 4 ] {1}, {2}, {3, 4}, {5} 15: [ . . . 3 1 ] [ . 1 2 2 . ] {1, 5}, {2}, {3, 4} 16: [ . . . 3 2 ] [ . 1 2 2 1 ] {1}, {2, 5}, {3, 4} 17: [ . . . 3 3 ] [ . 1 2 2 2 ] {1}, {2}, {3, 4, 5} 18: [ . . 1 . . ] [ . 1 . 3 4 ] {1, 3}, {2}, {4}, {5} 19: [ . . 1 . 1 ] [ . 1 . 3 . ] {1, 3, 5}, {2}, {4} 20: [ . . 1 . 2 ] [ . 1 . 3 1 ] {1, 3}, {2, 5}, {4} 21: [ . . 1 . 4 ] [ . 1 . 3 3 ] {1, 3}, {2}, {4, 5} 22: [ . . 1 1 . ] [ . 1 . . 4 ] {1, 3, 4}, {2}, {5} 23: [ . . 1 1 2 ] [ . 1 . . 1 ] {1, 3, 4}, {2, 5} 24: [ . . 1 2 . ] [ . 1 . 1 4 ] {1, 3}, {2, 4}, {5} 25: [ . . 1 2 1 ] [ . 1 . 1 . ] {1, 3, 5}, {2, 4} 26: [ . . 1 2 2 ] [ . 1 . 1 1 ] {1, 3}, {2, 4, 5} 27: [ . . 2 . . ] [ . 1 1 3 4 ] {1}, {2, 3}, {4}, {5} 28: [ . . 2 . 1 ] [ . 1 1 3 . ] {1, 5}, {2, 3}, {4} 29: [ . . 2 . 2 ] [ . 1 1 3 1 ] {1}, {2, 3, 5}, {4} 30: [ . . 2 . 4 ] [ . 1 1 3 3 ] {1}, {2, 3}, {4, 5} 31: [ . . 2 1 . ] [ . 1 1 . 4 ] {1, 4}, {2, 3}, {5} 32: [ . . 2 1 1 ] [ . 1 1 . . ] {1, 4, 5}, {2, 3} 33: [ . . 2 1 2 ] [ . 1 1 . 1 ] {1, 4}, {2, 3, 5} 34: [ . . 2 2 . ] [ . 1 1 1 4 ] {1}, {2, 3, 4}, {5} 35: [ . . 2 2 1 ] [ . 1 1 1 . ] {1, 5}, {2, 3, 4} 36: [ . 1 . . . ] [ . . 2 3 4 ] {1, 2}, {3}, {4}, {5} 37: [ . 1 . . 1 ] [ . . 2 3 . ] {1, 2, 5}, {3}, {4} 38: [ . 1 . . 3 ] [ . . 2 3 2 ] {1, 2}, {3, 5}, {4} 39: [ . 1 . . 4 ] [ . . 2 3 3 ] {1, 2}, {3}, {4, 5} 40: [ . 1 . 1 . ] [ . . 2 . 4 ] {1, 2, 4}, {3}, {5} 41: [ . 1 . 1 3 ] [ . . 2 . 2 ] {1, 2, 4}, {3, 5} 42: [ . 1 . 3 . ] [ . . 2 2 4 ] {1, 2}, {3, 4}, {5} 43: [ . 1 . 3 1 ] [ . . 2 2 . ] {1, 2, 5}, {3, 4} 44: [ . 1 . 3 3 ] [ . . 2 2 2 ] {1, 2}, {3, 4, 5} 45: [ . 1 1 . . ] [ . . . 3 4 ] {1, 2, 3}, {4}, {5} 46: [ . 1 1 . 4 ] [ . . . 3 3 ] {1, 2, 3}, {4, 5} ct=46