Где я ошибся в логическом выражении?
Вот само выражение - ((x ∈ P) ≡ (x ∈ Q)) → ¬(x ∈ A)
Вот мой код:
#Наибольшее -> remove
#Наименьшее -> append
p = list(range(5, 31))
q = list(range(14, 24))
a = list(range(52))
for x in range(52):
if not(((x in p) == (x in q)) <= (x not in a)):
a.remove(x)
print(a)
Вот сама задача, если кому надо:
На числовой прямой даны два отрезка: P = [5, 30] и Q = [14, 23]. Укажите наибольшую возможную длину промежутка A, для которого формула
((x ∈ P) ≡ (x ∈ Q)) → ¬(x ∈ A)
тождественно истинна, то есть принимает значение 1 при любом значении переменной х.
Вывод, который должен:
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
Мой вывод:
[5, 6, 7, 8, 9, 10, 11, 12, 13]
Ответы (1 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
sympy.Interval представляет отрезок прямой:
import sympy
p = sympy.Interval(5, 30)
q = sympy.Interval(14, 23)
r = p.symmetric_difference(q)
print(r)
$ python symdif.py Union(Interval.Ropen(5, 14), Interval.Lopen(23, 30))