Задание:
Для какого наименьшего целого неотрицательного числа A выражение
(x + 2y < A) \/ (y > x) \/ (x > 60)
тождественно истинно, т.е. принимает значение 1 при любых целых неотрицательных x и y?
Решение:
Так как мы ищем наименьшее значение параметра в выражении вида exp < A, необходимо найти максимальное значение выражения exp и относительно него определить минимальное значение А.
Значение параметра влияет на значение выражения, когда подвыражения, не содержащие параметр, ложны. Или (y ≤ x) и (x ≤ 60).
Так как значение выражения (x + 2y) растет с ростом значений, входящих в него, нам нужно найти максимальные значения x и y, которые бы удовлетворяли системе
Максимальное значение х равно 60. Для этого значения максимальное значение y также равно 60.
Подставляем полученные значения x и y в подвыражение с параметром
60 + 2∙60 < A
180 < A
Amin = 181
Ответ: 181
Решение (программное)
Переберем значения x и y в заведомо более широком диапазоне. Значения параметра А будем перебирать также в широком диапазоне, прервав выполнение, когда все значения x и y соответствуют условию задачи.
def f(A, x ,y):
return (x +2*y < A) or (y > x) or (x > 60)
for A in range(1000):
if all(f(A, x ,y)
for x in range(1000) for y in range(1000)):
print(A)
break
Ответ: 181
Источник: Информатика с Джобсом | ЕГЭ