Задание 6. Тип заданий 18: логические выражения.
  • Задание:

    Введём выражение M & K, обозначающее поразрядную конъюнкцию M и K (логическое «И» между соответствующими битами двоичной записи). Определите наименьшее натуральное число A, такое что выражение

     

    (X & 15 ≠ 0) → ((X & 35 ≠ 0) → (X & A ≠ 0))

     

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

  • Решение:

    Для начала упростим выражение по закону

    a → b = ¬a ˅ b

    (X & 15 ≠ 0) → ((X & 35 ≠ 0) → (X & A ≠ 0))

    (15 ≠ 0) → ((35 ≠ 0) → (A ≠ 0))

    (15 = 0) ˅ (35 = 0) ˅ (A ≠ 0)

    Теперь переведём 15 и 35 в двоичную систему счисления:

    1510 = 11112

    3510 = 1000112

    Выражение (15 = 0) ˅ (35 = 0) ˅ (A ≠ 0) должно быть истинно для любого натурального x. Проще говоря, если какое-то число при поразрядном умножении на 15 и на 35 не дают нуля, то при умножении на А это число также не должно давать нуля.

    Рассмотрим произведение каждого разряда чисел 15 и 35 на единицу:

    x x & 1111 = 0 x & 100011 = 0 x & A ≠ 0
    1 0 0 1
    10 0 0 1
    100 0 1 -
    1000 0 1 -
    10000 1 1 -
    100000 1 0 -

    В первом столбце указаны разряды (единицы, десятки и т.д.) Во втором столбце проверяется истинность выражения x & 1111 = 0, в третьем — истинность выражения x & 100011 = 0, в четвёртом столбце указано, критично ли значение А для этого разряда.

    Посмотрите на первые две строки. x & 1111 = 0 ложно, x & 100011 = 0 ложно, значит x & A ≠ 0 обязательно должно быть истинно. А наименьший А, для которого произведение 1 и 10 не даст нуля — 11.

    112 = 310

    Ответ: 3

Поделиться:
 
Комментарии (3)
Илья Беломытцев # 9 апреля 2016 в 19:51 0
В решении ошибка. Если взять к примеру x=101000 (40) - первые две скобки (в упрощенном выражении) будут ноль, при A=3 вторая будет тоже ноль. Поэтому Правильный ответ:A = 1111 = 15
Николай Колесниук # 19 мая 2016 в 22:08 0
Простите, я не могу понять: почему не подходит 1? Ведь она стоит раньше 2 и 3, да и к тому же дает лож в 15 и 35, также как 2 и 3.
тормоз Зомрот # 10 июня 2016 в 12:24 0
а вообще тут кто-нибудь отвечает?!?!?!?!?!?!? мы тоже не догнали!!!!!!!!!!
Перевести число из в Результат: 510 = 1012