FUNCTION
Catalan_Numbers_List
Computes the Catalan numbers, of order 0 to n.
Interface
#include <codecogs/maths/combinatorics/sequences/catalan_numbers_list.h>
using namespace Maths::Combinatorics::Sequences;
The formula for calculating the Catalan number of order n has several forms:
This function uses the following recurrence relation:
The Catalan number C(n) counts:
1) the number of binary trees with vertices;
2) the number of ordered trees with vertices;
3) the number of full binary trees with vertices;
4) the number of well formed sequences of parentheses;
5) the number of ways ballots can be counted, in order, with n positive and n negative, so that the running sum is never negative;
6) the number of standard tableaus in a 2 by n rectangular <em> Ferrers </em> diagram;
7) the number of monotone functions which satisfy
, for all
8) the number of ways to triangulate a polygon with vertices.
Example 1
#include <codecogs/maths/combinatorics/sequences/catalan_numbers_list.h>
#include <iostream>
int main() {
std::vector<int> result = Maths::Combinatorics::Sequences::catalan_numbers_list(8);
std::cout << "Number of values: " << result.size() << std::endl;
for (int i = 0; i < result.size(); i++)
std::cout << result[i] << " ";
std::cout << std::endl;
return 0;
}Output:
Number of values: 9
1 1 2 5 14 42 132 429 1430References
SUBSET, a C++ library of combinatorial routines, http://www.csit.fsu.edu/~burkardt/cpp_src/subset/subset.html