Задача к ЕГЭ по информатике на тему «отрезки» №3

На числовой прямой даны два отрезка: N  = [41,102]  и M  = [78,156]  . Укажите наименьшую возможную длину отрезка А для которого выражение

¬ (¬ (x ∈ A)∧ (x ∈ N ))∨(x ∈ M )

тождественно истинно (т.е. принимает значение 1) при любом значении переменной х?

Решение руками:

Упростим выражение, раскрыв отрицания:

(x ∈ A)∨ (x ∕∈ N )∨ (x ∈ M )

Найдем случаи, когда известная часть равна 0 и тогда мы узнаем какой должен быть отрезок А для того чтобы выражение было тождественно истинным. Для этого запишем её отрицание:

(x ∈ N )∧(x ∕∈ M )

Инверсия известной части дает 1 когда x  принадлежит отрезку N  и одновременно не принадлежит отрезку  M  . Это полуинтервал [41;78)  . Тогда отрезок A  должен «перекрыть» как минимум эту область. Так как мы ищем минимальную длину отрезка A  , то A = [41;78]  . Его длина равна 78− 41 = 37  .

Решение программой:

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)

Ответ: 37
Оцените статью
Я решу все!