Все задачи №15
№15

Два отрезка, наименьшая длина A

На числовой прямой даны два отрезка: B = [290; 750] и C = [135; 675]. Укажите наименьшую возможную длину такого отрезка A, что логическое выражение (¬(x ∈ B) ∧ (x ∈ C)) → ((¬(x ∈ A) ∧ (x ∈ C)) → (x ∈ B)) истинно (т.е. принимает значение 1) при любом значении переменной x.

Источник: ФИПИ (Основная 19.06.2026), № 31153

Ответвпиши то, что вывела программа
Показать разбор
  1. Опиши каждый отрезок в функции f(x) двойным неравенством, а A как a1 <= x <= a2.
  2. Перепиши формулу: → это <=, ≡ это ==, ¬ это not, расставь скобки.
  3. Составь опасные точки: концы отрезков и точки на 0.1 левее и правее.
  4. Перебирай a1 и a2 из этих точек при a2 >= a1. Формула должна быть истинной во всех точках.
  5. Нужна наименьшая длина: возьми min от a2 - a1 и округли через round.
def f(x):
    B = 290 <= x <= 750
    C = 135 <= x <= 675
    A = a1 <= x <= a2
    return ((not B) and C) <= (((not A) and C) <= B)

d = [y for x in (290, 750, 135, 675) for y in (x, x - 0.1, x + 0.1)]
n = []
for a1 in d:
    for a2 in d:
        if a2 >= a1 and all(f(x) for x in d):
            n.append(a2 - a1)
print(round(min(n)))