Teacher & coder

Задача № 98

Для какого наименьшего целого неотрицательного числа \( А \) выражение

\[ (x + 2y < A) \lor (y > x) \lor (x > 60) \]

тождественно истинно, т.е. принимает значение 1 при любых целых неотрицательных \( x \) и \( y \)?

Можно скопировать и вставить все ответы сразу
Демонстрационный вариант 2024 года
Прокрути, чтобы прочитать решение задачи
Ты уверен, что хочешь это сделать?
Удачного чтения!

Решение

В таких задачах встречаются хитрые сюжеты, поэтому полезно уметь решать их не только с помощью кода. Давайте начнём с графического способа.

Решим с помощью графика

Между скобками логическое ИЛИ. Чтобы всё выражение было истинно, достаточно истинности хотя бы одной скобки. Рассмотрим их отдельно.

\( (x + 2y < A) \) \(\lor\) \((y > x)\) \(\lor\) \( (x > 60) \)

Кликайте по стрелкам, чтобы решить задачу по шагам.
Рассмотрим скобку \( \nobreak {(x > 60)} \).
Мы можем начать с любой скобки, но в этом неравенстве всего одна переменая и нет параметра \(A\).
Упростим задачу и построим на графике функцию \( \nobreak {x = 60} \).
Это прямая линия, параллельная оси ординат, проходящая через точку \( \nobreak {(60; 0)} \).
Область правее прямой \( \nobreak {x = 60} \) и есть график неравенства \( \nobreak {x > 60} \).
В этой области выражение истинно. Закрасим.
Переходим ко второй скобке \(\nobreak {(y > x)} \).
В этом выражении две переменные, но тоже нет параметра \(A\).
График функции \( \nobreak {y = x} \) — биссектриса \(I\) координатнной четверти.
Построим прямую.
Область выше прямой \( \nobreak {y = x} \) — это график неравенства \( \nobreak {y > x} \).
В этой области истинна вторая скобка. Закрасим.
Незакрашенным остался белый треугольник.
Для белой области нам нужно решить неравенство \( \nobreak {x + 2y < A} \).
График функции \( \nobreak {x + 2y = A} \) — прямая, но непонятно, как именно она проходит.
Чтобы изобразить функцию на графике, выберем любое значение параметра \(A\). Например, пусть \( \nobreak {A = 40} \).
Построим график функции \( \nobreak {x + 2y = 40} \).
Если сложно, можно выразить функцию в привычном виде: \( \displaystyle \nobreak {y = -\frac{1}{2}x + \frac{40}{2}} \)
График неравенства \( \nobreak {x + 2y < 40} \) — область под красной линией.
Число 40 мы выбрали произвольно, поэтому всю белую часть закрасить не получилось.
Могла быть другая ситуация: например, при \( \nobreak {A = 200} \), график полностью закрасит белую область.
Числа 40 и 200 мы выбирали произвольно. По условию нам нужно найти минимальное целое неотрицательное значение \(A\).
Определим координаты точки, через которую должен пройти красный график.
Это точка с координатами \( \nobreak {(60; 60)} \). По оси \(x\) значение равно 60. Значение по оси \(y\) можно найти с помощью синего графика.
Подставим значения \( \nobreak {x = 60} \) и \( \nobreak {y = 60} \) в неравенство \( \nobreak {x + 2y < A} \) и вычислим \( A \).
\( \nobreak {60 + 2 \cdot 60 < A} \)
\( \nobreak {180 < A} \)
Запишем ответ. Минимальное целое неотрицательное значение параметра \(A\) равно 181.

С помощью Python

Будем подбирать значение параметра \(A\) и проверять его для всех значений \(x\) и \(y\).

Поскольку проверить на всех возможных значениях \(x\) и \(y\) задача для компьютера невыполнимая, определим границы.

Предел \(x\) и \(y\) можно выбрать произвольно, но чем он больше — тем дольше будет работать программа.

Заметим, что при \( \nobreak {x > 60} \) выражение истинно. С небольшим запасом будем проверять до сотни.

# определим функцию, которая проверяет значение A
def check(A):
	# проверяем для x от нуля до 100
	for x in range(100):
		# и также для y от нуля до 100
		for y in range(100):
			# если получается ложное значение выражения — такое A не подходит
			if ((x + 2 * y < A) or (y > x) or (x > 60)) == 0:
				# вызвращаем ложь
				return False
	# если ни разу не получалось ложное значение — возвращаем истину
	return True

# минимальное значение A по условию — целое неотрицательное
A = 0
# пока не найдём подходящее значение — увеличиваем A
while not check(A):
	A += 1

# когда нашли подходящее — выводим ответ
print(A)

Артём Зинкин

Лучше не гуглить и подумать самостоятельно. Тест можно пройти несколько раз :)
Чтобы поделиться задачей с коллегами или друзьями, отправьте им ссылку :)
Забыл сказать, что у этой задачи есть подробное решение. Посмотрите его :)
Попробуйте решить эту задачу сами и посмотрите наши разборы похожих задач :)
Кстати, на ЕГЭ тоже нельзя копировать :)
Этим материалом удобно поделиться по прямой ссылке :)