Введём выражение M & K, обозначающее поразрядную конъюнкцию M и K (логическое «И» между соответствующими битами двоичной записи). Определите наименьшее натуральное число A, такое что выражение
(X & 112 ≠ 0 ∨ X & 86 ≠ 0) → (X & 65 = 0 → X & А ≠ 0)
тождественно истинно (то есть принимает значение 1 при любом натуральном значении переменной X)?
Решение:
1) В языке программирования Python есть логическая операция умножения над отдельными битами – обозначается символом &.
2) Напишем программу на Python
'''(X & 112 ≠ 0 ∨ X & 86 ≠ 0) → (X & 65 = 0 → X & А ≠ 0) = 1'''
for a in range(1,100):
flag=True
for x in range(1,1000):
if not ( (x&112!=0 or x&86!=0) <= ((x&65==0) <= (x&a!=0)) ):
flag=False
break
if flag:
print(a)
break
Ответ: 54