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

На числовой прямой даны два отрезка: P = [25,30]  и Q = [13,22]  . Укажите наибольшую длину отрезка A  , при котором формула

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

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

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

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

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

Тогда получается, множество не A  должно перекрывать следующие участки прямой: (− ∞; 13)∪ (22;25) ∪(30;∞ )  . Для того чтобы этого добиться отрезок A  должен содержаться в одном из отрезков P  или Q  . Наибольшая длина отрезка A  будет достигаться, когда он равен Q  , то есть [13,22]  . Его длина 22− 13 = 9  .

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

# функция, которая проверяет, принадлежит ли 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(25, 30, x)) or F(13, 22, x)) == False:
                f = 1
                break
        if f == 0:
            # добавляем длину отрезка в массив
            lens.append(b-a)
print(max(lens))

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