// output of ./demo/comb/combination-rank-demo.cc: // Description: //% Ranking and unranking combinations in near-perfect order arg 1: 7 == N [Combinations (N choose K): (n>=1)] default=7 arg 2: 3 == K [ (1<=K<=N) ] default=3 arg 3: 2 == zq [Option: choose order: 0=lex, 1=gray, 2=near-perfect] default=2 Using 5-compositions of 3 0: [ . . . . 3 ] [ . . . . 0 1 2 ] [ 4, 5, 6 ] 1: [ . . 1 . 2 ] [ . . 0 . . 1 2 ] [ 2, 5, 6 ] 2: [ 1 . . . 2 ] [ 0 . . . . 1 2 ] [ 0, 5, 6 ] 3: [ . 1 . . 2 ] [ . 0 . . . 1 2 ] [ 1, 5, 6 ] 4: [ . . . 1 2 ] [ . . . 0 . 1 2 ] [ 3, 5, 6 ] 5: [ . . . 2 1 ] [ . . . 0 1 . 2 ] [ 3, 4, 6 ] 6: [ . . 1 1 1 ] [ . . 0 . 1 . 2 ] [ 2, 4, 6 ] 7: [ 1 . . 1 1 ] [ 0 . . . 1 . 2 ] [ 0, 4, 6 ] 8: [ . 1 . 1 1 ] [ . 0 . . 1 . 2 ] [ 1, 4, 6 ] 9: [ . 2 . . 1 ] [ . 0 1 . . . 2 ] [ 1, 2, 6 ] 10: [ 1 1 . . 1 ] [ 0 . 1 . . . 2 ] [ 0, 2, 6 ] 11: [ 2 . . . 1 ] [ 0 1 . . . . 2 ] [ 0, 1, 6 ] 12: [ 1 . 1 . 1 ] [ 0 . . 1 . . 2 ] [ 0, 3, 6 ] 13: [ . 1 1 . 1 ] [ . 0 . 1 . . 2 ] [ 1, 3, 6 ] 14: [ . . 2 . 1 ] [ . . 0 1 . . 2 ] [ 2, 3, 6 ] 15: [ . . 3 . . ] [ . . 0 1 2 . . ] [ 2, 3, 4 ] 16: [ 1 . 2 . . ] [ 0 . . 1 2 . . ] [ 0, 3, 4 ] 17: [ . 1 2 . . ] [ . 0 . 1 2 . . ] [ 1, 3, 4 ] 18: [ . 2 1 . . ] [ . 0 1 . 2 . . ] [ 1, 2, 4 ] 19: [ 1 1 1 . . ] [ 0 . 1 . 2 . . ] [ 0, 2, 4 ] 20: [ 2 . 1 . . ] [ 0 1 . . 2 . . ] [ 0, 1, 4 ] 21: [ 3 . . . . ] [ 0 1 2 . . . . ] [ 0, 1, 2 ] 22: [ 2 1 . . . ] [ 0 1 . 2 . . . ] [ 0, 1, 3 ] 23: [ 1 2 . . . ] [ 0 . 1 2 . . . ] [ 0, 2, 3 ] 24: [ . 3 . . . ] [ . 0 1 2 . . . ] [ 1, 2, 3 ] 25: [ . 2 . 1 . ] [ . 0 1 . . 2 . ] [ 1, 2, 5 ] 26: [ 1 1 . 1 . ] [ 0 . 1 . . 2 . ] [ 0, 2, 5 ] 27: [ 2 . . 1 . ] [ 0 1 . . . 2 . ] [ 0, 1, 5 ] 28: [ 1 . 1 1 . ] [ 0 . . 1 . 2 . ] [ 0, 3, 5 ] 29: [ . 1 1 1 . ] [ . 0 . 1 . 2 . ] [ 1, 3, 5 ] 30: [ . . 2 1 . ] [ . . 0 1 . 2 . ] [ 2, 3, 5 ] 31: [ . . 1 2 . ] [ . . 0 . 1 2 . ] [ 2, 4, 5 ] 32: [ 1 . . 2 . ] [ 0 . . . 1 2 . ] [ 0, 4, 5 ] 33: [ . 1 . 2 . ] [ . 0 . . 1 2 . ] [ 1, 4, 5 ] 34: [ . . . 3 . ] [ . . . 0 1 2 . ] [ 3, 4, 5 ] #= 35