Returns the number of derangements of 0 through \e n objects.

View versions (1)

Interface

#include <codecogs/maths/combinatorics/sequences/derangements_list.h>

using namespace Maths::Combinatorics::Sequences;

A derangement of n objects is a permutation with no fixed points. If we symbolize the permutation by \sigma, then for a derangment, \sigma(i) is never equal to i.

Returns

the number of derangements of 0 through n objects

Example:

#include <codecogs/maths/combinatorics/sequences/derangements_list.h>
#include <iostream>
int main() {
  std::vector<int> result = Maths::Combinatorics::Sequences::derangements_list(10);
  std::cout << "For 0 through 10 objects, the number of derangements are:";
  std::cout << std::endl;
  for (int i = 0; i < result.size(); i++)
    std::cout << result[i] << "  ";
  std::cout << std::endl;
  return 0;
}

Output:

For 0 through 10 objects, the number of derangements are:
1  0  1  2  9  44  265  1854  14833  133496  1334961

References

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

GPL Licence — free for non commercial use. See Licence details.