Задача к ЕГЭ по информатике на тему «неравенства» №3

Для какого наибольшего целого числа A  формула

(x ⋅y > A )∨ (27 > y)∨ (y− 20 ≥ A )∨ (x < 8)

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

Решение аналитикой

Враги хотят, чтобы выражение было ложно. Система для врагов:

( [ |||   x⋅y ≤ A ||{  y− 20 < A  |||| 27 ≤ y |( x ≥ 8

Тогда друзья говорят:

( [ |||   A < x⋅y ||{  A ≤ y− 20  |||| y ≥ 27 |( x ≥ 8

Наименьшее x = 8  , y = 27  . Тогда

⌊⌈ A ≤ 7  A < 216

Наибольшее A = 215  .

 

Решение программой 1:

for a in range(500, 1, -1):
    # Переменная-флаг, по которой будем отслеживать наличие ложных выражений
    f = 0
    for x in range(1, 300):
        for y in range(1, 300):
            # Если нашлось такое выражение, то прекращаем перебор
            if ((x * y > a) or (27 > y) or ((y - 20) >= a) or (x < 8)) == False:
                f = 1
                break
    # Если ложных выражений не было, то выводим значение
    if f == 0:
        print(a)
        break

 

Решение программой 2:

def f(a):
    for x in range(1, 1000):
        for y in range(1, 1000):
            if ((x * y > a) or (27 > y) or ((y - 20) >= a) or (x < 8)) == 0:
                return 0
    return 1

for a in range(500, 1, -1):
    if f(a):
        print(a)
        break

Ответ: 215
Оцените статью
Я решу все!