CombinatorialCase010

From NARS2000
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

This case produces the M Combinations of N items.

  • M unlabeled balls (0), N labeled boxes (1), at most one ball per box (0)
  • Sensitive to ⎕IO
  • Allows Lexicographic and Gray Code order
  • Count result is an integer scalar
  • Generated result is an integer matrix.

The count for this function is M!N.

For example:

If we have 2 unlabeled balls (●●) and 4 labeled boxes (1234) with at most one ball per box, there are 6 (↔ 2!4) ways to meet these criteria:

       
1 2 3 4
       
1 2 3 4
       
1 2 3 4
       
1 2 3 4
       
1 2 3 4
       
1 2 3 4

and, in general, it’s easy to see that this case solves the familiar problem of M combinations of N items.

The diagram above corresponds to

      10 1‼2 4 ⍝ Combinations in unspecified order
1 2
2 3
1 3
3 4
2 4
1 4
      10 2‼2 4 ⍝ Combinations in Lexicographic order
1 2
1 3
1 4
2 3
2 4
3 4
      10 3‼2 4 ⍝ Combinations in Gray Code order
1 2
2 3
1 3
3 4
2 4
1 4
      ⍝ M Combinations of N items
      ⍝ Unlabeled balls, labeled boxes, ≤1 # Balls per Box
      3!5
10
      010‼3 5
10
      010 0‼3 5
10
      ⍴010 1‼3 5
10 3
      10 1‼3 5 ⍝ Combinations in unspecified order
1 2 3
1 3 4
2 3 4
1 2 4
1 4 5
2 4 5
3 4 5
1 3 5
2 3 5
1 2 5
      10 2‼3 5 ⍝ Combinations in Lexicographic order
1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5
      10 3‼3 5 ⍝ Combinations in Gray Code order
1 2 3
1 3 4
2 3 4
1 2 4
1 4 5
2 4 5
3 4 5
1 3 5
2 3 5
1 2 5

In general, this case is related to that of Multisets (011) and Compositions (012) via the following identities:

010 1‼M N ↔ (011 1‼M,N-M-1)+[⎕IO+1] 0..M-1
011 1‼M N ↔ (010 1‼M,M+N-1)-[⎕IO+1] 0..M-1

010 1‼M N ↔ +\0 ¯1↓012 1‼⍠1 N M+1
012 1‼M N ↔ ¯2-\(010 1‼⍠1 N M-1),M

where ‼⍠1 uses the Variant operator to evaluate in origin 1.