Алгоритм решения задания 15. Часть 3
Учимся решать 15 задания третьего типа
Читать
На числовой прямой даны два отрезка: B = [24; 90] и C = [47; 115].
Укажите наименьшую возможную длину такого отрезка A, что логическое выражение (x ∈ C) → ((¬(x ∈ A) ∧ (x ∈ B)) → ¬(x ∈ C)) истинно (т.е. принимает значение 1) при любом значении переменной х.
Правильный ответ:
43
from itertools import combinations
def f(x):
B = 24 <= x <= 90
C = 47 <= x <= 115
A = A1 <= x <= A2
return C <= ((not A and B) <= (not C))
line_A = sorted([24, 90, 47, 115])
line_x = [24.5, 90.5, 47.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))
