На числовой прямой даны два отрезка: P = [25; 64] и Q = [40; 115]. Укажите наименьшую возможную длину такого отрезка A, что логическое выражение истинно (т.е. принимает значение 1) при любом значении переменной х.
Ответ:
Демонстрационный вариант ЕГЭ 2026 г. – задание №15
Решение:
Решение на Python —
|
1 2 3 4 5 6 7 |
p = list(range(25, 65)) q = list(range(40, 115)) a=[] for x in range(1, 200): if ((x in p) <= (((x in q) and (x not in a)) <= (x not in p))) == False: a.append(x) print(a[-1]-a[0]) |
ИЛИ
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
P1, P2 = 25, 64 Q1, Q2 = 40, 115 def inside(x, l, r): return l <= x <= r best = 10**9 # очень большое # перебираем ВСЕ возможные отрезки A = [a; b] # разумный диапазон: от 0 до 200 (нам хватит) for a in range(0, 201): for b in range(a, 201): # b >= a ok = True for x in range(0, 201): # проверяем ВСЕ x x_in_P = inside(x, P1, P2) x_in_Q = inside(x, Q1, Q2) x_in_A = inside(x, a, b) expr = (not x_in_P) or ( (not (x_in_Q and not x_in_A)) or (not x_in_P) ) # это точная запись исходного выражения if not expr: ok = False break if ok: length = b - a if length < best: best = length print(best) |
Что тут лучше, чем в том решении:
-
Явно заданы P и Q как границы.
-
Есть отдельная функция
inside(...). -
Мы реально перебираем отрезки, а не «собираем все плохие x и берём крайние».
-
В конце берём просто минимальную длину.
Ответ: 24
