Задание 15 ЕГЭ: поразрядная конъюнкция
Поразрядная конъюнкция: наименьшее или наибольшее A. Тема номера — логические выражения с параметром. Ниже — пример с ответом и решением; кнопкой под ним можно решить такую же задачу с другими числами, ответ проверится сразу.
Пример
Обозначим через m & n поразрядную конъюнкцию неотрицательных целых чисел m и n. Так, например, 14 & 5 = 11102 & 01012 = 01002 = 4.
Для какого наименьшего неотрицательного целого числа A формула
((x & 58 ≠ 0) ∧ (x & 33 = 0)) → (x & A ≠ 0)
тождественно истинна, т. е. принимает значение 1 при любом неотрицательном целом значении переменной x?
Ответ
26Решение
В числах 58 и 33 не больше семи двоичных разрядов, поэтому выражение зависит только от младших восьми бит x, и достаточно перебрать x и A от 0 до 255. 58 = 1110102, 33 = 1000012; при ответе A = 26 = 110102 условие выполняется для всех x.
Ответ: 26.
def f(x, A):
return not ((x & 58 != 0) and (x & 33 == 0)) or (x & A != 0)
good = [A for A in range(256) if all(f(x, A) for x in range(256))]
print(min(good))