FUNCTION
inverse
Calculates the inverse of the given permutation.
Interface
#include <codecogs/maths/combinatorics/permutations/inverse.h>
using namespace Maths::Combinatorics::Permutations;
The inverse of a permutation
$$\sigma = \left( \begin{array}{cccc} 1 & 2 & \ldots & n \cr
\sigma(1) & \sigma(2) & \ldots & \sigma(n) \end{array} \right)$$
(1)
is a permutation $\tau$ such that
$$\sigma \circ \tau = \tau \circ \sigma =
\left( \begin{array}{cccc} 1 & 2 & \ldots & n \cr
1 & 2 & \ldots & n \end{array} \right)$$
(2)
where $\sigma \circ \tau$ represents multiplication. This function searches for the permutation $\tau$ with the property stated above and returns it as a C++ vector object.
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/permutations/inverse.h>
#include <iostream>
int main()
{
int sigma[5] = {5, 2, 1, 4, 3};
std::vector<int> result = Maths::Combinatorics::Permutations::inverse(5, sigma);
std::cout << "The inverse of the Sigma permutation is: ";
std::cout << std::endl;
for (int i = 0; i < 5; i++)
std::cout << result[i] << " ";
std::cout << std::endl;
return 0;
}Output:
The inverse of the Sigma permutation is:
3 2 5 4 1Parameters
n
the size of the permutation
p
the actual permutation given as an array
Returns
the inverse of the given permutation p
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.