combinat-0.2.8.0: Generate and manipulate various combinatorial objects.

Safe HaskellNone
LanguageHaskell2010

Math.Combinat.Numbers

Contents

Description

A few important number sequences.

See the "On-Line Encyclopedia of Integer Sequences", https://oeis.org .

Synopsis

Documentation

factorial :: Integral a => a -> Integer Source

A000142.

doubleFactorial :: Integral a => a -> Integer Source

A006882.

binomial :: Integral a => a -> a -> Integer Source

A007318.

pascalRow :: Integral a => a -> [Integer] Source

A given row of the Pascal triangle; equivalent to a sequence of binomial numbers, but much more efficient. You can also left-fold over it.

pascalRow n == [ binomial n k | k<-[0..n] ]

Catalan numbers

catalan :: Integral a => a -> Integer Source

Catalan numbers. OEIS:A000108.

catalanTriangle :: Integral a => a -> a -> Integer Source

Catalan's triangle. OEIS:A009766. Note:

catalanTriangle n n == catalan n
catalanTriangle n k == countStandardYoungTableaux (toPartition [n,k])

Stirling numbers

signedStirling1stArray :: Integral a => a -> Array Int Integer Source

Rows of (signed) Stirling numbers of the first kind. OEIS:A008275. Coefficients of the polinomial (x-1)*(x-2)*...*(x-n+1). This function uses the recursion formula.

signedStirling1st :: Integral a => a -> a -> Integer Source

(Signed) Stirling numbers of the first kind. OEIS:A008275. This function uses signedStirling1stArray, so it shouldn't be used to compute many Stirling numbers.

Argument order: signedStirling1st n k

unsignedStirling1st :: Integral a => a -> a -> Integer Source

(Unsigned) Stirling numbers of the first kind. See signedStirling1st.

stirling2nd :: Integral a => a -> a -> Integer Source

Stirling numbers of the second kind. OEIS:A008277. This function uses an explicit formula.

Argument order: stirling2nd n k

Bernoulli numbers

bernoulli :: Integral a => a -> Rational Source

Bernoulli numbers. bernoulli 1 == -1%2 and bernoulli k == 0 for k>2 and odd. This function uses the formula involving Stirling numbers of the second kind. Numerators: A027641, denominators: A027642.

Bell numbers

bellNumbersArray :: Integral a => a -> Array Int Integer Source

Bell numbers (Sloane's A000110) from B(0) up to B(n). B(0)=B(1)=1, B(2)=2, etc.

The Bell numbers count the number of set partitions of a set of size n

See http://en.wikipedia.org/wiki/Bell_number

bellNumber :: Integral a => a -> Integer Source

The n-th Bell number B(n), using the Stirling numbers of the second kind. This may be slower than using bellNumbersArray.