О Карте Карно

"Ну, если ты играл в игру The Witness, то ты сможешь решить модуль The Witness..." Окей, Пиксель, удачи с этим модулем.

  • На модуле есть экран, таблица 5х5 и 6 кнопок: 1, 2, 3, 4, D, S.
  • Чтобы обезвредить этот модуль, нужно ввести логическое выражение с переменными, относящееся к данной карте Карно, где карта Карно - матрица 4х4 с клетками "0", "1" и "*". стандартные переменные - 1, 2, 3 и 4, инвертированные переменные - 1, 2, 3, 4.
  • Чтобы ввести переменную, нажмите на одну из пронумерованных кнопок. Для ввода инвертированной переменной нажмите ту же кнопку.
  • Для ввода "+" нажмите кнопку S. Чтобы отправить решение, нажмите кнопку S дважды.
  • Для удаления последнего введенного символа нажмите кнопку D.

Как получить выражение:

  • Любой прямоугольник на карте, длины сторон которого являются степенью двойки (1, 2 или 4), назовем склейкой.
  • Выберите склейку, которая покрывает хотя бы одну "1", но не покрывает ни одного "0".
  • Для определения выражения склейки, укажите общие переменные для всех клеток склейки. Совет. Чтобы найти общие переменные:
    • Возьмите состояние одной из клеток (например, для клетки B2 это 1234).
    • Возьмите следующую клетку склейки, и сравните их состояния. Уберите из рассмотрения переменную, которая содержится в обычном виде в одной из клеток, но в инвертированном в другой.
    • Продолжайте сравнение полученного состояния с состоянием других клеток склейки. Не нужно добавлять переменную обратно, если она уже была убрана до этого.
  • Выберите несколько склеек, которые позволят покрыть все "1" на карте, и сложите их выражения с помощью знака "+" (например, 13+234).

Имейте в виду:

  • В таблице может появиться максимум четыре "1" и максимум четыре "0".
  • Склейки могут выходить за пределы карты.
  • Модуль не проверяет выражение на оптимизированность.
  • Не допускается использование склейки, состоящей только из "*".
  • Одна и та же клетка может использоваться несколько раз.
  • Если требуется отправить "ложь" для всей таблицы (достигается при отсутствии "1"), нажмите кнопку S, когда экран пуст.
  • Иначе, если требуется отправить "истина" для всей таблицы (достигается при отсутствии "0"), отправьте выражение, покрывающее всю таблицу (например, 1+1).

Примеры:

Красный: для 1234 и 1234 общими переменными являются 123.
Оранжевый: склейки могут перекрывать друг друга.
Желтый: склейки могут выходить за пределы карты.
Красный: не является склейкой, так как одна из сторон - не степень двойки.
Оранжевый: склейка не может содержать "0".
Желтый: склейка не может состоять только из "*".