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

На числовой прямой даны два отрезка: P = [15;39]  и Q = [44;57]  . Укажите наибольшую возможную длину такого отрезка A  , что формула

((x ∈ A) → (x ∈ P))∨ (x ∈ Q )

тождественно истинна, то есть принимает значение 1 при любом значении переменной   .

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

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

(x ∕∈ A) ∨(x ∈ P )∨ (x ∈ Q)

Воспользуемся методом сковородки (отрицания известной части) и найдем случаи, когда известная часть равна 0. Тогда мы узнаем какой должен быть отрезок А для того, чтобы выражение было тождественно истинным.

Скажем, что (x ∈ P )∨(x ∈ Q)  должно быть равно 0. Это выполняется тогда, когда (x ∕∈ P)∧ (x∈∕Q )  равно 1. Это происходит, когда x  принадлежит интервалам: (− ∞; 15) ∪(39;44)∪ (57;∞ )  (красная область на рисунке).

PIC

Но отрезок A  должен быть таким, чтобы x  ему не пренадлежал. Это отрезки P  или Q  . Наибольшая длина отрезка A  будет достигаться, когда он равен P  , то есть [15;39]  . Его длина 39− 15 = 24  .

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

# функция, которая проверяет, принадлежит ли 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))

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