A combinatorics library for Julia, focusing mostly (as of now) on enumerative
combinatorics and permutations. As overflows are expected even for low values,
most of the functions always return BigInt, and are marked as such below.
This library provides the following functions:
bellnum(n): returns the n-th Bell number; always returns aBigInt;catalannum(n): returns the n-th Catalan number; always returns aBigInt;lobbnum(m,n): returns the generalised Catalan number atmandn; always returns aBigInt;narayana(n,k): returns the general Narayana number at any givennandk; always returns aBigInt;combinations(a,n): returns all combinations ofnelements of indexable objecta;combinations(a): returns combinations of all order by chaining calls tocombinations(a,n);derangement(n)/subfactorial(n): returns the number of permutations of n with no fixed points; always returns aBigInt;partialderangement(n, k): returns the number of permutations of n with exactly k fixed points; always returns aBigInt;doublefactorial(n): returns the double factorial n!!; always returns aBigInt;fibonaccinum(n): the n-th Fibonacci number; always returns aBigInt;hyperfactorial(n): the n-th hyperfactorial, i.e. prod([i^i for i = 2:n]; always returns aBigInt;integer_partitions(n): returns aVector{Int}consisting of the partitions of the numbern.jacobisymbol(a,b): returns the Jacobi symbol (a/b);lassallenum(n): returns the nth Lassalle number An defined in arXiv:1009.4225 (OEIS A180874); always returns aBigInt;legendresymbol(a,p): returns the Legendre symbol (a/p);lucasnum(n): the n-th Lucas number; always returns aBigInt;multifactorial(n): returns the m-multifactorial n(!^m); always returns aBigInt;multinomial(k...): receives a tuple ofk_1, ..., k_nand calculates the multinomial coefficient(n k), wheren = sum(k); returns aBigIntonly if given aBigInt;multiexponents(m,n): returns the exponents in the multinomial expansion (x₁ + x₂ + ... + xₘ)ⁿ;primorial(n): returns the product of all positive prime numbers <= n; always returns aBigInt;stirlings1(n, k, signed=false): returns the(n,k)-th Stirling number of the first kind; the number is signed ifsignedis true; returns aBigIntonly if given aBigInt.stirlings2(n, k): returns the(n,k)-th Stirling number of the second kind; returns aBigIntonly if given aBigInt.nthperm(a, k): Compute thekth lexicographic permutation of the vectora.permutations(a): Generate all permutations of an indexable objectain lexicographic order.
Limited support for working with Young diagrams is provided.
partitionsequence(a): computes partition sequence for an integer partitionax = a \ bcreates the skew diagram for partitions (tuples)a,bisrimhook(x): checks if skew diagramxis a rim hookleglength(x): computes leg length of rim hookxcharacter(a, b): computes character the partitionbin theath irrep of Sn