P {partitions}R Documentation

Number of partitions of an integer

Description

Given an integer, P() returns the number of additive partitions, Q() returns the number of unequal partitions, and R() returns the number of restricted partitions.

Usage

P(n, give = FALSE)
Q(n, give = FALSE)
R(m, n, include.zero=FALSE)

Arguments

n Integer whose partition number is desired
m In function R(), the order of the decomposition
give Boolean, with default FALSE meaning to return just P(n) or Q(n) and TRUE meaning to return P(1:n) or Q(1:n) (this option takes no extra computation)
include.zero In restrictedparts(), Boolean with default FALSE meaning to count only partitions of n into exactly m parts; and TRUE meaning to include partitions of n into at most m parts (because parts of zero are included).

Details

Functions P() and Q() use Euler's recursion formula. Function R() enumerates the partitions using Hindenburg's method (see Andrews) and counts them until the recursion bottoms out.

Note

Functions P() and Q() use unsigned long long integers, a type which is system-dependent. For me, P() works for n equal to or less than 416, and Q() works for n less than or equal to 792. YMMV; none of the methods test for overflow, so use with care!

Author(s)

Robin K. S. Hankin

References

G. E. Andrews. “The Theory of Partitions”, Cambridge University Press, 1998.

Examples

P(10,give=TRUE)
Q(10,give=TRUE)
R(10,20,include.zero=FALSE)
R(10,20,include.zero=TRUE)

[Package partitions version 1.1-2 Index]