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