FUNCTION
Partition
Computes the partition generated by the given permutation.
Interface
#include <codecogs/maths/combinatorics/permutations/partition.h>
using namespace Maths::Combinatorics::Permutations;
The problem of finding the partition of the set generated by a certain permutation
is the same with finding its disjoint cycle decomposition. Therefore, each cycle would represent a subset of the original set. This function returns a C++ vector with the property that
if and only if
belongs to the subset of order
. For instance, consider the following permutation:
(1)
then the vector would be
(2)
generating the following partition
(3)
Returns
the partition generated by the given permutation, with the property stated in the documentation
Example:
#include <codecogs/maths/combinatorics/permutations/partition.h>
#include <iostream>
int main()
{
int tau[9] = {2, 3, 9, 6, 7, 8, 5, 4, 1};
std::vector<int> result = Maths::Combinatorics::Permutations::partition(9, tau);
std::cout << "The partition of the [9] set induced by the Tau permutation is:";
std::cout << std::endl;
for (int i = 1; i <= 9; i++)
{
for (int j = 0; j < 9; j++)
if (result[j] == i)
{
std::cout << "Subset " << i << " : { ";
for (; j < 9; j++)
if (result[j] == i)
std::cout << tau[j] << " ";
std::cout << "}" << std::endl;
}
}
return 0;
}
Output:
The partition of the [9] set induced by the Tau permutation is:
Subset 1 : { 2 3 9 1 }
Subset 2 : { 6 8 4 }
Subset 3 : { 7 5 }
References
SUBSET, a C++ library of combinatorial routines, http://www.csit.fsu.edu/~burkardt/cpp_src/subset/subset.html
This function's source code is only visible to registered users — documentation and the calculator above are free to use either way. Sign in to see it.