№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
Ответвпиши то, что вывела программа
Показать разбор
- Опиши каждый отрезок в функции f(x) двойным неравенством, а A как a1 <= x <= a2.
- Перепиши формулу: → это <=, ≡ это ==, ¬ это not, расставь скобки.
- Составь опасные точки: концы отрезков и точки на 0.1 левее и правее.
- Перебирай a1 и a2 из этих точек при a2 >= a1. Формула должна быть истинной во всех точках.
- Нужна наименьшая длина: возьми 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)))