# Enumerative Combinatorics

- [Introduction](introduction.md)

- [Combinatorial Functions](combinatorics.md)

  - [`Factorial(n): RngIntElt → RngIntElt`](combinatorics.md#function-factorial-rngintelt)

  - [`NumberOfPermutations(n, k): RngIntElt, RngIntElt → RngIntElt`](combinatorics.md#function-numberofpermutations-rngintelt-rngintelt)

  - [`Binomial(n, r): RngIntElt, RngIntElt → RngIntElt`](combinatorics.md#function-binomial-rngintelt-rngintelt)

  - [`Multinomial(n, [r₁, ... rₙ]): RngIntElt, [RngIntElt] → RngIntElt`](combinatorics.md#function-multinomial-rngintelt-rngintelt)

  - [`Fibonacci(n): RngIntElt → RngIntElt`](combinatorics.md#function-fibonacci-rngintelt)

  - [`Catalan(n): RngIntElt → RngIntElt`](combinatorics.md#function-catalan-rngintelt)

  - [`Lucas(n): RngIntElt → RngIntElt`](combinatorics.md#function-lucas-rngintelt)

  - [`GeneralizedFibonacciNumber(g0, g1, n): RngIntElt, RngIntElt, RngIntElt → RngIntElt`](combinatorics.md#function-generalizedfibonaccinumber-rngintelt-rngintelt-rngintelt)

  - [`StirlingFirst(n, k): RngIntElt, RngIntElt → RngIntElt`](combinatorics.md#function-stirlingfirst-rngintelt-rngintelt)

  - [`StirlingSecond(n, k): RngIntElt, RngIntElt → RngIntElt`](combinatorics.md#function-stirlingsecond-rngintelt-rngintelt)

  - [`Bell(n): RngIntElt → RngIntElt`](combinatorics.md#function-bell-rngintelt)

  - [`EulerianNumber(n, r): RngIntElt, RngIntElt → RngIntElt`](combinatorics.md#function-euleriannumber-rngintelt-rngintelt)

  - [`HarmonicNumber(n): RngIntElt → FldRatElt`](combinatorics.md#function-harmonicnumber-rngintelt)

  - [`BernoulliNumber(n): RngIntElt → FldRatElt`](combinatorics.md#function-bernoullinumber-rngintelt)

  - [`BernoulliApproximation(n): RngIntElt → FldPrElt`](combinatorics.md#function-bernoulliapproximation-rngintelt)

  - [`BernoulliPolynomial(n): RngIntElt → RngUPolElt`](combinatorics.md#function-bernoullipolynomial-rngintelt)

- [Subsets of a Finite Set](subsets.md)

  - [`Subsets(S): SetEnum → SetEnum`](subsets.md#function-subsets-setenum)

  - [`Subsets(S, k): SetEnum, RngIntElt → SetEnum`](subsets.md#function-subsets-setenum-rngintelt)

  - [`Multisets(S, k): SetEnum, RngIntElt → SetEnum`](subsets.md#function-multisets-setenum-rngintelt)

  - [`Subsequences(S, k): SetEnum, RngIntElt → SetEnum`](subsets.md#function-subsequences-setenum-rngintelt)

  - [`Permutations(S): SetEnum → SetEnum;`](subsets.md#function-permutations-setenum)

  - [`Permutations(S, k): SetEnum, RngIntElt → SetEnum;`](subsets.md#function-permutations-setenum-rngintelt)

  - [`Example: Odd Graph`](subsets.md#example-ex-676132)
