На числовой прямой даны два отрезка: P = [15; 40] и Q = [21; 63]. Укажите наименьшую возможную длину такого отрезка A, для которого логическое выражение (x ∈ P) → (((x ∈ Q) ∧ ¬(x ∈ A)) → ¬(x ∈ P)) истинно (т.е. принимает значение 1) при любом значении переменной x.
Ответ:
ЕГЭ по информатике Основная волна 07.06.2024 kompege.ru – задание №15
Решение:
|
1 2 3 4 5 6 7 |
p = list(range(15, 41)) q = list(range(21, 64)) a=[] for x in range(1, 200): if ((x in p) <= (((x in q) and (x not in a)) <= (x not in p))) == False: a.append(x) print(a[-1]-a[0]) |
Объяснение кода:
- Создание списков
pиq:
12p = list(range(15, 41))q = list(range(21, 64))
Списокpсодержит числа от 15 до 40 включительно, а списокqсодержит числа от 21 до 63 включительно. - Инициализация пустого списка
a:
1a = []
Создаем пустой списокa, который будет содержать элементы, нарушающие логическое выражение. - Цикл проверки чисел:
123for x in range(1, 200):if ((x in p) <= (((x in q) and (x not in a)) <= (x not in p))) == False:a.append(x)
Перебираем значенияxот 1 до 199:- Проверяем логическое выражение:
((x in p) <= (((x in q) and (x not in a)) <= (x not in p))) == False. - Если выражение ложно (т.е. нарушается), добавляем значение
xв списокa.
- Проверяем логическое выражение:
- Вывод результата:
1print(a[-1] - a[0])
Выводим разницу между последним и первым элементами спискаa, что соответствует длине отрезкаA.
Итог:
Этот код перебирает значения x от 1 до 199, проверяет логическое выражение для каждого значения и добавляет нарушающие значения в список a. В итоге выводится наименьшая возможная длина отрезка A, для которого выражение истинно при любом значении переменной x.
Ответ: 19
