№ 10098 Демоверсия 2024 (Уровень: Базовый)
Для какого наименьшего целого неотрицательного числа A выражение (x + 2y < A) ∨ (y > x) ∨ (x > 60) тождественно истинно, т.е. принимает значение 1 при любых целых неотрицательных x и y?
Комментарии к решению:
def F(x, y, A):
- создаем функцию с именем F
и параметрами x
, y
, A
.return (x + 2 * y < A) or (y > x) or (x > 60)
- возвращаем результат логического выражения, которое проверяет три условия: (x + 2 * y < A)
, (y > x)
, (x > 60)
.for A in range(0, 1000):
- начинаем цикл, перебирая значения A
от 0 до 999
(т.к. нам сказано, что число A целое и неотрицательное)if all(F(x, y, A) for x in range(0, 100) for y in range(0, 100)):
- проверяем, если все значения функции F
для каждой комбинации x
и y
в диапазоне 1000 являются истинными.
(F == 1
/ F == True
)
Если функция возвращает нам истину, то мы прекращаем работу цикла и останавливаемся на нужном значении A
.print(A)
- выводим значение A
.break
- прерываем выполнение цикла после вывода первого (наименьшего) значения A
.def F(x, y, A):
return (x + 2 * y < A) or (y > x) or (x > 60)
for A in range(0, 1000):
if all(F(x, y, A) for x in range(0, 100) for y in range(0, 100)):
print(A)
break