Условие:
программа должна определять, являются ли два заданных отношения рефлексивными, антирефлексивными, симметричными, антисимметричными, транзитивными, а также выводить их композицию. в чем проблема данного кода: def comp(A, B):
c = [[0] * n for _ in range(n)]
for i in range(n):
for j in range(n):
c[i][j] = '1' if any(A[i][k] and B[k][j] for k in range(n)) else '0'
return c
def trans(A):
c = comp(A, A)
return '1' if all(i == j or c[i][j] == 0 or A[i][j] for i in range(n) for j in range(n)) else '0'
def properties(A):
refl = '1' if all(A[i][i] for i in range(n)) else '0'
a_refl = '1' if all(not A[i][i] for i in range(n)) else '0'
simm = '1' if all(A[i][j] == A[j][i] for i in range(n) for j in range(n)) else '0'
a_simm = '1' if all(j == i or A[i][j] != A[j][i] for i in range(n) for j in range(n)) else '0'
return " ".join([refl, a_refl, simm, a_simm, trans(A)])
# n = 3
# A = [[0, 1, 0], [0, 0, 1], [1, 0, 0]]
# B = [[1, 1, 0], [0, 1, 1], [1, 0, 1]]
n = int(input())
A = [list(map(int, input().split())) for i in range(n)]
B = [list(map(int, input().split())) for i in range(n)]
AoB = comp(A, B)
print(properties(A))
print(properties(B))
[print(*AoB[i]) for i in range(n)]
![программа должна определять, являются ли два заданных отношения рефлексивными, антирефлексивными, симметричными, антисимметричными, транзитивными, а также выводить их композицию. в чем проблема данного кода: def comp(A, B): c = [[0] n for _ in range(n)]](/public/images/library/external/library-detail-hero-book.png)
