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

Обозначим через m&n  поразрядную конъюнкцию неотрицательных целых чисел m  и n.

Так, например, 14&5 = 11102&01012 = 01002 = 4.

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

x&65 = 0 → (x&91 ⁄= 0 → x&A  ⁄= 0)

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

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

6510 = 10000012

91  = 1011011   10         2

Враги хотят подобрать x  такой, что x&65 = 0,x&91 ⁄= 0,x&A = 0  . Тогда на всех разрядах где у 65 единички будут нули и в одном из разрядов или в двух одновременно (где у 65 в двоичной записи нули, а у 91 единички) будут единички. Во всех остальных разрядах будут нули чтобы была больше вероятность истинности x&A  = 0  .

Тогда друзья чтобы x&A  ⁄= 0  поставят единички где они гарантированно могут появится в x  . Это будет число 110102 = 26  .

 

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

def f(a):
    for x in range(1, 1000):
        if ((x & 65 == 0) <= ((x & 91 != 0) <= (x & a != 0))) == 0:
            return False
    return True

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

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