Combinatorial Functions

Binomial(n, r) : RngIntElt, RngIntElt -> RngIntElt
The binomial coefficient n choose r.
Multinomial(n, [r1, ... rn]) : RngIntElt, [RngIntElt] -> RngIntElt
Given a sequence Q = [r1, ..., rk] of positive integers such that n = r1 + ... + rk, return the multinomial coefficient n choose r1, ..., rk.
Factorial(n) : RngIntElt -> RngIntElt
The factorial n! for positive small integer n.
IsFactorial(n) : RngIntElt -> BoolElt, RngIntElt
Tests if n = k! for some k. If so, return true and k, false otherwise.
Partitions(n) : RngIntElt -> [ [ RngIntElt ] ]
The unrestricted partitions of the positive integer n. This function returns a sequence of integer sequences, each of which is a different sequence of positive integers (in descending order) adding up to n. The integer n must be small.
NumberOfPartitions(n) : RngIntElt -> RngIntElt
The number of unrestricted partitions of the non-negative integer n. The integer n must be small.
RestrictedPartitions(n, M) : RngIntElt, SetEnum -> [ [ RngIntElt ] ]
The partitions of the positive integer n, restricted to elements of the positive integer sequence M.
RestrictedPartitions(n, k, M) : RngIntElt, RngIntElt, SetEnum -> [ [ RngIntElt ] ]
The partitions of the positive integer n into k parts, restricted to elements of the positive integer sequence M.
StirlingFirst(n, k) : RngIntElt, RngIntElt -> RngIntElt
The Stirling number of the first type, s(n, k), where n and k are non-negative integers.
StirlingSecond(n, k) : RngIntElt, RngIntElt -> RngIntElt
The Stirling number of the second type, S(n,k), where n and k are non-negative integers.
Bell(n) : RngIntElt -> RngIntElt
The nth Bell number, giving the number of partitions of a set of size n. (Not to be confused with NumberOfPartitions(n), which gives the number of partitions of the integer n.) This is equal to the sum of StirlingSecond(n,k) for k between 0 and n (inclusive).
Fibonacci(n) : RngIntElt -> RngIntElt
Given an integer n, this function returns the n-th Fibonacci number Fn, which can be defined via the recursion F0 = 0, F1 = 1 and Fn = Fn - 1 + Fn - 2 for all integers n. Note that n is allowed to be negative, and that F - n = ( - 1)n + 1 Fn.
Lucas(n) : RngIntElt -> RngIntElt
Given an integer n, this function returns the n-th Lucas number Ln, which can be defined via the recursion L0 = 2, L1 = 1 and Ln = Ln - 1 + Ln - 2 for all integers n. Note that n is allowed to be negative, and that L - n = ( - 1)nLn.
GeneralizedFibonacciNumber(g0, g1, n) : RngIntElt, RngIntElt, RngIntElt -> RngIntElt
The nth member of the generalized Fibonacci sequence defined by G0 = g0, G1 = g1 and Gn = Gn - 1 + Gn - 2 for all integers n. Note that n is allowed to be negative. The Fibonacci and Lucas numbers are special cases where (g0, g1) = (0, 1) or (2, 1) respectively.
V2.28, 13 July 2023