Какое высказывание является истинным

Обновлено: 24.11.2024

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

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

x&51 = 0 ∨ (x&41 = 0 → x&А = 0)

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

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

Х + (Y → Z) = Х + (¬Y + Z) = Х + Z + ¬Y = Y → (X + Z) = (Y → X) + (Y → Z).

Далее применяем обозначения и реализуем способ решения, изложенный К. Ю. Поляковым в теоретических материалах (см., например, раздел «Теория» на нашем сайте), без дополнительных пояснений.

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

2&41: 000000, то есть 2&41 = 0. Высказывание 2&41 = 0 истинно.

2&51: 000010 = 2, то есть 2&51 = 2. Высказывание 2&51 = 0 ложно.

Ответ 45 не подходит. Пусть A = 45, а x = 2210 = 101102, тогда:

51&22: 0100102, т.е. высказывание 22&51 = 0 ложно.

41&22: 0000002, т.е. высказывание 22&41 ≠ 0 ложно.

51&22: 0001002, т.е. высказывание 22&45 = 0 ложно.

Следовательно, при x = 22 и A = 45 логическое выражение ложно.

Приведем другое решение.

При таком А левая и правая части импликации одинаковы, следовательно, импликация в правой скобке истинна, а значит, истинно и все выражение.

Приведём другое решение.

Решим задание с помощью языка программирования PascalABC методом перебора:

for A := 0 to 63 do begin

for x := 0 to 63 do

if not (((x and 51) = 0) or ((x and 41) <> 0) or ((x and (63-A)) = 0)) then

if B then begin

Приведём аналогичное решение на языке Python.

Заметим, что можно не перебирать числа, большие 63, поскольку для записи чисел 41 и 51 хватит шести разрядов. Программа выведет ответ 41.

Читайте также: