Задача к ЕГЭ по информатике на тему «преобразование логических выражений» №2

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

(                        )   ∘ √----   y6 (     9x5 + 10000+ 21z > A) ∨ (z < 12)∨ (y ≤ 9)∨ (x ≤ 8)

тождественно истинно при любых целых неотрицательных x  , y  и z  ?

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

(∘ -----     6 ||||  √9x5-+ --y--+ 21z ≤ A, |||{         10000  z ≥ 12, ||| ||||y > 9, (x > 8 » class=»math-display» src=»/images/inform/reshen/reshen-2923-1.svg» width=»auto»></div>
</td>
</tr>
</tbody>
</table>
<p class=

Чтобы увеличить свои шансы на победы, врагам выгодно взять наименьшие x, y, z, то есть x = 9, y = 10, z = 12.

Друзья хотят, чтобы ∘ √----   y6    9x5 + -----+ 21z > A          10000  » class=»math» src=»/images/inform/reshen/reshen-2923-2.svg» width=»auto»>, то есть </p>
<div class= ∘ ----     6   √96 + -10--+ 21∗ 12 > A         10000 » class=»math-display» src=»/images/inform/reshen/reshen-2923-3.svg» width=»auto»></div>
<p class= .

27+ 100 +252 > A » class=»math-display» src=»/images/inform/reshen/reshen-2923-4.svg» width=»auto»></div>
<p class=
379 > A » class=»math-display» src=»/images/inform/reshen/reshen-2923-5.svg» width=»auto»></div>
<p class= Тогда наибольшее A = 378  .

Решение 2. Прогой

def f(x, y, z, A):
    return ((((9 * (x ** 5)) ** 0.5) ** 0.5 + y ** 6 / 10000 + 21 * z) > A) 
        or (z < 12) or (y <= 9) or (x <= 8)

ans = 0
for A in reversed(range(1000)):
    flag = True
    for x in range(0, 50):
        for y in range(0, 50):
            for z in range(0, 50):
                if not f(x, y, z, A):
                    flag = False
                    break
            if not flag:
                break
        if not flag:
            break
    if flag:
        print(A)
        break

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