ЕГЭ Информатика 2024: Задание 15 — решение и разбор

Задание повышенного уровня сложности, проверяющее знание основных понятий и законов математической логики. На его выполнение отводится 3 минуты.

Условие задачи

Для какого наименьшего целого неотрицательного числа a выражение (x + 2) * y < a ∨ y > x ∨ x > 60 тождественно истинно (принимает значение 1 при любых целых неотрицательных x и y)?

Решение задачи с помощью программирования

Задачу легко решить программно, перебрав значения переменной a. Так как a — неотрицательное целое число, начнём перебор с нуля. Диапазон перебора ограничим значением 1000, что достаточно для поиска наименьшего подходящего a.

for a in range(1000):
    if all( (x + 2) * y < a or y > x or x > 60 for x in range(1000) for y in range(1000) ):
        print(a)
        break

В этом коде:

  • Вложенные циклы for x in range(1000) for y in range(1000) перебирают все пары неотрицательных целых чисел x и y в диапазоне от 0 до 999.
  • Выражение (x + 2) * y < a or y > x or x > 60 проверяет истинность исходного логического выражения для каждой пары x и y.
  • Функция all() возвращает True, если выражение истинно для всех пар x и y.
  • Если all() возвращает True, значит, найдено наименьшее значение a, которое удовлетворяет условию задачи. Оператор break прерывает цикл после нахождения первого решения.

Результат

Запустив этот код, получаем ответ: 181. Это наименьшее целое неотрицательное число a, при котором данное выражение тождественно истинно.

Что будем искать? Например,программа