№15 · решено
Длина отрезка
На числовой прямой даны отрезки P = [15; 40] и Q = [30; 65]. Для какого отрезка A = [a1; a2] формула P → ((Q ∧ ¬A) → ¬P) тождественно истинна при любом x? Какова наименьшая возможная длина отрезка A?
Учебная задача
Ответвпиши то, что вывела программа
Показать разбор
- Опиши каждый отрезок в функции f(x) двойным неравенством, а A как a1 <= x <= a2.
- Перепиши формулу: → это <=, ≡ это ==, ¬ это not, расставь скобки.
- Составь опасные точки: концы отрезков и точки на 0.1 левее и правее.
- Перебирай a1 и a2 из этих точек при a2 >= a1. Формула должна быть истинной во всех точках.
- Нужна наименьшая длина: возьми min от a2 - a1 и округли через round.
def f(x):
P = 15 <= x <= 40
Q = 30 <= x <= 65
A = a1 <= x <= a2
return P <= ((Q and (not A)) <= (not P))
d = [y for x in (15, 30, 40, 65) 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)))