Какое высказывание является истинным
Обновлено: 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.
Читайте также: