Алгоритм решения задания 15. Часть 3
Учимся решать 15 задания третьего типа
Читать
На числовой прямой даны два отрезка: P = [17; 58] и Q = [29; 80].
Укажите наименьшую возможную длину такого отрезка A, что логическое выражение (x ∈ P) → (((x ∈ Q) ∧ ¬(x ∈ A)) → ¬(x ∈ P)) истинно (т.е. принимает значение 1) при любом значении переменной х.
Правильный ответ:
29
from itertools import combinations
def f(x):
P = 17 <= x <= 58
Q = 29 <= x <= 80
A = A1 <= x <= A2
return P<= ((Q and (not A))<= (not P))
line_A = sorted([17, 58, 29, 80])
line_x = [17.5, 58.5, 29.5]
ans = []
for A1, A2 in combinations(line_A, 2):
if all(f(x) for x in line_x):
ans.append(A2 - A1)
print(min(ans))
