Задача к ЕГЭ по информатике на тему «побитовая конъюнкция» №1

Определите наибольшее натуральное число A, такое что выражение

(X &10 ⁄= 0)∨ (X &39 = 0)∨ (X&A  = 0)

тождественно истинно (то есть принимает значение 1 при любом натуральном значении переменной X)?

Решение руками:

Преобразуем выражение по законам алгебры логики:

X-+ Y + Z = X → (Y + Z) = (X  → Y )+ (X  → Z )

((X&10 = 0) → (X&39 = 0))∨ ((X &10 = 0) → (X &A  = 0))

Заметим, что первое слагаемое логической суммы является импликацией Z10 →  Z39  , которая не является истинной для всех x  . Тогда необходимо и достаточно, чтобы второе слагаемое логической суммы было тождественно истинным.

Итак, импликация Z10 → ZA  должна быть тождественно истиной. Запишем число 10 в двоичной системе счисления: 10  = 1010   10      2

Единичные биты, стоящие в правой части, должны являться единичными битами левой. Поэтому в правой части единичными битами независимо друг от друга могут быть (а могут и не быть) только первый и третий биты (считая справа налево, начиная с нуля). Поскольку искомое А – наибольшее натуральное число, все биты, которые могут быть единичными будут единичными.

Тем самым, наибольшее A = 10102 = 1010  .

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

for a in range(1, 1000):
    flag = True
    for x in range(1, 1000):
        if ((x & 10 != 0) or (x & 39 == 0) or (x & a == 0)) == False:
            flag = False
            break
    if flag:
        print(a)

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