CombinatorialCase001

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