Задания
Версия для печати и копирования в MS WordНа числовой прямой даны два отрезка: P = [25; 40] и Q = [11; 32]. Укажите наименьшую возможную длину такого отрезка A, для которого логическое выражение
(x ∈ P) → (((x ∈ Q) ∧ (x ∈ P)) → (x ∈ A))
истинно (т. е. принимает значение 1) при любом значении переменной х.
Решение.
Приведём решение на языке Python.
from itertools import combinations as c
P, Q = range(25, 40), range(11, 32)
li = [range(*x) for x in c((11, 25, 32, 40), 2)]
mi = 1000
for A in li:
if all((x in P) <= (((x in Q) and (x in P)) <= (x in A))\
for x in range(-3000, 3000)):
mi = min(mi, len(A))
print(mi)
Ответ: 7.

