确定表示关系的1-0矩阵是否对称



我知道在一个表示关系的矩阵中,这个关系是对称的,它是1-0矩阵,表示它的元素满足矩阵中第I行和col j的a_ij = a_ji。

下面是我的解决方案:

def sym(a):
    assert (len(row) == len(a) for row in a)   
    for i in range(len(a)):
        for j in range (len(a)):
            if all(a[i][j] == a[j][i]):
        return True    
    return False

我们遍历矩阵的行并进行比较,如下所示

def sym(a):
    assert set(len(item) for item in a) == {len(a)}
    return all(a[i][j] == a[j][i] for i in range(len(a)) for j in range (len(a)))
a = [[1, 0], [0, 1]]
print sym(a)
# True
a = [[1, 0]]
print sym(a)
# AssertionError
a = [[1, 1], [0, 0]]
print sym(a)
# False

最新更新