// 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
