用 sympy 反转排列

Inverting permutations witn sympy

sympy.combinatorics.permutations 中的哪个函数可以 return 对给定排列进行逆排列? Google 中的搜索没有给出结果。我可以写这个函数,但是如果sympy已经实现了,那就没必要了。

感谢您的帮助!

您正在寻找 ~:

In [5]: print Permutation.__invert__.__doc__
        Return the inverse of the permutation.
        A permutation multiplied by its inverse is the identity permutation.
        Examples
        ========
        >>> from sympy.combinatorics.permutations import Permutation
        >>> p = Permutation([[2,0], [3,1]])
        >>> ~p
        Permutation([2, 3, 0, 1])
        >>> _ == p**-1
        True
        >>> p*~p == ~p*p == Permutation([0, 1, 2, 3])
        True

In [6]: ~Permutation(1, 2, 0)
Out[6]: Permutation(0, 2, 1)

** -1 也有效。在线文档从字面上从未解释过这一点,所以我可以看出您是如何找不到它的。 ~只在commutatormul_inv方法的解释中提到。