Stirling2.Rd
This function computes Stirling numbers of the second kind, \(S(n, k)\), which count the number of ways of partitioning n distinct objects in to k non-empty sets.
Stirling2(n, k)
A vector of one or more positive integers
A vector of one or more positive integers
An vector of Stirling numbers of the second kind
The implementation on this function is a simple recurrence relation which
defines $$S(n, k) = kS(n - 1, k), + S(n - 1, k - 1)$$ for \(k > 0\)
with the inital conditions \(S(0, 0) = 1\) and \(S(n, 0) = S(0, n) =
0\). If n
and n
have different lengths then expand.grid
is used to construct a vector of (n, k) pairs
## returns S(6, 3)
Stirling2(6, 3)
#> [1] 90
## returns S(6,1), S(6,2), ..., S(6,6)
S2(6, 1:6)
#> [1] 1 31 90 65 15 1
## returns S(6,1), S(5, 2), S(4, 3)
S2(6:4, 1:3)
#> [1] 1 15 6