Загрузка данных


from itertools import combinations

def input_set(name):
    numbers = input(f"Введите множество {name} через пробел: ")
    return set(map(int, numbers.split()))


def powerset(s):
    s = sorted(s)
    result = []

    for r in range(len(s) + 1):
        for x in combinations(s, r):
            result.append(set(x))

    return result


A = input_set("A")
B = input_set("B")
C = input_set("C")

# Булеан
P_A = powerset(A)

# Множества варианта 6
D1 = A - C
D2 = (A | B | C) - (A | B)

# Бинарное отношение
D = set()

for x in D1:
    for y in D1:
        D.add((x, y))


print("\nБулеан P(A):")
for subset in P_A:
    print(subset)

print("\nD1 =", sorted(D1))
print("D2 =", sorted(D2))

print("\nБинарное отношение D:")
print(sorted(D))

# Матрица отношения
elements = sorted(D1)

print("\nМатрица бинарного отношения D:")

print("    ", end="")
for x in elements:
    print(x, end=" ")
print()

for x in elements:
    print(x, " |", end=" ")

    for y in elements:
        if (x, y) in D:
            print(1, end=" ")
        else:
            print(0, end=" ")

    print()