На числовой прямой даны два отрезка: и
. Укажите наименьшую возможную длину отрезка А для которого выражение
тождественно истинно (т.е. принимает значение 1) при любом значении переменной х?
Решение руками:
Упростим выражение, раскрыв отрицания:
Найдем случаи, когда известная часть равна 0 и тогда мы узнаем какой должен быть отрезок А для того чтобы выражение было тождественно истинным. Для этого запишем её отрицание:
Инверсия известной части дает 1 когда принадлежит отрезку
и одновременно не принадлежит отрезку
. Это полуинтервал
. Тогда отрезок
должен «перекрыть» как минимум эту область. Так как мы ищем минимальную длину отрезка
, то
. Его длина равна
.
Решение программой:
n = [i for i in range(41, 103)]
m = [i for i in range(78, 157)]
mn = 10**10
for a1 in range(1, 100):
for a2 in range(a1+1, 101):
a = [i for i in range(a1, a2+1)]
f = 0
for x in range(1, 300):
if (not(not(x in a) and (x in n)) or (x in m)) == False:
f = 1
break
if f == 0:
mn = min(len(a), mn)
print(mn)