Определите наибольшее натуральное число A, такое что выражение
тождественно истинно (то есть принимает значение 1 при любом натуральном значении переменной X)?
Решение руками:
Преобразуем выражение по законам алгебры логики:
Заметим, что первое слагаемое логической суммы является импликацией , которая не является истинной для всех
. Тогда необходимо и достаточно, чтобы второе слагаемое логической суммы было тождественно истинным.
Итак, импликация должна быть тождественно истиной. Запишем число 10 в двоичной системе счисления:
Единичные биты, стоящие в правой части, должны являться единичными битами левой. Поэтому в правой части единичными битами независимо друг от друга могут быть (а могут и не быть) только первый и третий биты (считая справа налево, начиная с нуля). Поскольку искомое А – наибольшее натуральное число, все биты, которые могут быть единичными будут единичными.
Тем самым, наибольшее .
Решение программой:
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)