CombinatorialCase110

From NARS2000
Revision as of 20:18, 29 April 2017 by WikiSysop (talk | contribs)
Jump to navigationJump to search

This case produces L-Permutations (also called Partial Permutations or Sequences Without Repetition) of R items, where when L=R produces the familiar permutations !R. The length of each permutation returned is always L.

  • L labeled balls (1), R labeled boxes (1), at most one ball per box (0)
  • Sensitive to ⎕IO
  • Counted result is an integer scalar
  • Generated result is an integer matrix.

The count for this function is (!⍠(-L))R where (!⍠L)R calculates the Rising and Falling Factorial.

For example:

If we have 3 labeled balls (❶❷❸) and 3 labeled boxes (123) with at most one ball per box, there are 6 (↔ (!⍠¯3)3 ↔ 3×2×1) ways to meet these criteria:

1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3

The diagram above corresponds to

      110 1‼3 3
1 2 3
2 1 3
2 3 1
1 3 2
3 1 2
3 2 1
      ⍝ Permutations of length L of R items
      ⍝ Labeled balls & boxes, ≤1 # Balls per Box
      !3
6
      110‼3 3
6
      110 0‼3 3
6
      ⍴110 1‼3 3
6 3
      110 1‼3 3
1 2 3
2 1 3
2 3 1
1 3 2
3 1 2
3 2 1
      110 1‼2 3
1 2
2 1
1 3
3 1
2 3
3 2
      110 1‼1 3
1
2
3

A function to calculate the permutations of R items could be defined as

      perm←{110 1‼⍵ ⍵}