确定排列是偶数还是奇数的有效方法?

时间:2018-08-14 12:49:08

标签: numpy permutation

回答this的问题,我面临着试图有效地确定给定排列是否为even or odd的问题。我有点蛮力,因为我只需要担心三个维度,但是我对通过numpy

找到一种有效的方法来确定它很感兴趣。

到目前为止,我的解决方案是:

def perm_sign(a):
    a = np.asarray(a)
    l = a.size
    i, j = np.tril_indices(l, -1)
    return np.product(np.sign(a[i] - a[j]))

基本上,假设anp.arange(a.size)的某种排列(类似于np.argsort输出),确定anp.arange(a.size)的偶数或奇数排列。输出1表示偶数排列,-1表示奇数排列。

我认为必须有一种比np.product

更有效的方法

0 个答案:

没有答案