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

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

(3x + y ≥ A )∨(x < 30)∨(y ≤ 55)

будет тождественно ложно при некотором (хотя бы одном) наборе целых неотрицательных значений x  и y  ?

Аналитическое решение

Чтобы дизъюнкция была ложной при некотором неотрицательном целом значении x  и y  рассмотрим случай, когда (x < 30) = 0,  (y ≤ 55) = 0  и (3x + y ≥ A ) = 0.

Это эквивалентно следующей системе:

(| ||{y < − 3x + A,  x ≥ 30, |||(  y > 55 » class=»math-display» src=»/images/inform/reshen/reshen-2916-6.svg» width=»auto»></div>
</td>
</tr>
</tbody>
</table>
<p class=

Самое сильное ограничение для A  в системе, когда выражение примет значение ложь, будет при наименьших   x  и       y,  т. е. при 30  и 56  соответственно.

Подставим: 56 < − (3 ∗30)+ A,  откуда A > 146.  » class=»math» src=»/images/inform/reshen/reshen-2916-13.svg» width=»auto»> Значит, наименьшее значение A, когда выражение будет тождественно ложным — это 147. </p>
<p class= Решение программой

for a in range(0, 1000): # Перебираем неотрицательное A
    c = 0  # Переменная-флаг
    # Перебираем целые неотрицательные x и y
    for x in range(0, 1000):
        for y in range(0, 1000):
            F = (3*x + y >= a) or (x < 30) or (y <= 55)
            if F == False: # Выражение ложно, условие выполнено
                c = 1  # Поменяли значение флага
                break
        if c == 1:  # Если флаг поменялся, завершаем оба цикла
            break
    if c == 1:  # Флаг не поменял исходное значение
        print(a)
        break  # Первое выведенное A будет минимальным

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