На числовой прямой даны два отрезка: и
. Укажите наибольшую возможную длину такого отрезка
, что формула
тождественно истинна, то есть принимает значение 1 при любом значении переменной .
Решение руками:
Упростим выражение, раскрыв импликацию:
Воспользуемся методом сковородки (отрицания известной части) и найдем случаи, когда известная часть равна 0. Тогда мы узнаем какой должен быть отрезок А для того, чтобы выражение было тождественно истинным.
Скажем, что должно быть равно 0. Это выполняется тогда, когда
равно 1. Это происходит, когда
принадлежит интервалам:
(красная область на рисунке).
Но отрезок должен быть таким, чтобы
ему не пренадлежал. Это отрезки
или
. Наибольшая длина отрезка
будет достигаться, когда он равен
, то есть
. Его длина
.
Решение программой:
# функция, которая проверяет, принадлежит ли x отрезку
def F(start, end, x):
if start <= x <= end:
return True
else:
return False
lens = []
# левая граница искомого отрезка
for a in range(1, 500+1):
# правая граница искомого отрезка
for b in range(a, 500+1):
f = 0
for x in range(1, 1000):
if ((F(a, b, x) <= F(15, 39, x)) or F(44, 57, x)) == False:
f = 1
break
if f == 0:
# добавляем длину отрезка в массив
lens.append(b-a)
print(max(lens))