Calculates the multinomial coefficient with the given arguments.

View versions (1)

Interface

#include <codecogs/maths/combinatorics/arithmetic/multinomial.h>

using namespace Maths::Combinatorics::Arithmetic;

This function calculates the multinomial coefficient with the given arguments k_1, k_2, \ldots k_n,

(k_1, k_2, \ldots k_n)! =
\frac{(k_1 + k_2 + \ldots + k_n)!}{k_1! k_2! \ldots k_n!}
(1)

It uses a direct algorithm and so computer overflow may occur during the intermediate calculations, as opposed to the other multinomial component.

References

SUBSET, a C++ library of combinatorial routines, http://www.csit.fsu.edu/~burkardt/cpp_src/subset/subset.html

Example 1

#include <codecogs/maths/combinatorics/arithmetic/multinomial.h>
#include <iostream>
int main()
{
  int factors[4] = {1, 2, 3, 4};
  std::cout << "In the case of the following factors" << std::endl;
  for (int i = 0; i < 4; i++)
    std::cout << factors[i] << "  ";
  std::cout << std::endl << "the multinomial coefficient is" << std::endl;
  std::cout << Maths::Combinatorics::Arithmetic::multinomial(4, factors) << std::endl;
  return 0;
}

Output: In the case of the following factors 1 2 3 4 the multinomial coefficient is 12600

Parameters

n
the number of arguments
factors
the factors of the multinomial, given as an array

Returns

the multinomial coefficient based on the values of the factors
GPL Licence — free for non commercial use. See Licence details.