# CombinatorialCase001

This case produces the Partitions of the number M into at most N parts.

• M unlabeled balls (0), N unlabeled boxes (0), any # of balls per box (1)
• Not ⎕IO-sensitive
• Counted result is an integer scalar
• Generated result is a nested vector of integer vectors.

The count for this function is (M+N)PN N where M PN N calculates the number of Partitions of the number M into exactly N parts.

For example:

If we have 6 unlabeled balls (●●●●●●) and 3 unlabeled boxes with any # of balls per box, there are 7 (↔ (6+3)PN 3) ways to meet these criteria:

 ●●●●●●
 ●●●●● ●
 ●●●● ●●
 ●●●● ● ●
 ●●● ●●●
 ●●● ●● ●
 ●● ●● ●●

The diagram above corresponds to the nested array

```      ⍪001 1‼6 3
6
5 1
4 2
4 1 1
3 3
3 2 1
2 2 2
⍝ Partitions of M into at most N parts
⍝ Unlabeled balls & boxes, any # Balls per Box
⍪001 1‼5 5
5
4 1
3 2
3 1 1
2 2 1
2 1 1 1
1 1 1 1 1
⍪001 1‼5 4
5
4 1
3 2
3 1 1
2 2 1
2 1 1 1
⍪001 1‼5 3
5
4 1
3 2
3 1 1
2 2 1
⍪001 1‼5 2
5
4 1
3 2
⍪001 1‼5 1
5```

## Identities

As shown in Wikipedia, (M+N)PN N ↔ +/M PN¨0..N.

Because partitions of M into N non-negative parts (001) is the same as partitions of M+N into N positive parts (002), these cases are related by the following identity:

001 1‼M N ↔ (⊂[⎕IO+1] ¯1+002 1‼(M+N) N)~¨0