На числовой прямой даны два отрезка: и
. Укажите наименьшую возможную длину отрезка А для которого выражение
тождественно истинно (т.е. принимает значение 1) при любом натуральном значении переменной х?
Решение руками
Первым шагом раскроем импликацию и отрицание:
Уберем повторяющуюся часть :
Инвертируем известную часть, чтобы понять при каких выражение ложно:
Это выражение истино (а исходное соответственно ложно), когда принадлежит отрезку
, и принадлежит отрезку
одновременно. Это будут
. Чтобы исходное выражение было истинно при любом
, необходимо «перекрыть» отрезком
как минимум эту область. Тогда отрезок
будет
или больше. Так как в задании просят найти минимальную длину, то
, а его длина
.
Решение программой
n = [i for i in range(100, 181)]
m = [i for i in range(145, 201)]
mn = 10 ** 10
for a1 in range(1, 250):
for a2 in range(a1, 251):
f = 0
a = [i for i in range(a1, a2)]
for x in range(1, 400):
if ((x in n) <= (((x in m) and (x not in a)) <= (x not in n))) == False:
f = 1
break
if f == 0:
# -1, потому что мы считаем длину,
# т.е. количество "дорог" между точками(целыми числами),
mn = min(len(a)-1, mn)
print(mn)