Переключение битовой строки ACSL

Мне нужна помощь с проблемой ACSL. Конкурс проводился в 2014-2015 годах. Это просто практика, и я хочу посмотреть, правильно ли я решил задачу.

Перелистывание битовой строки:

Найдите x (5 бит) в следующем уравнении. Сколько существует уникальных решений?

(RCIRC-2(LSHIFT-1 (НЕ X)))=00101

После решения я получил 16 уникальных решений, хотя нигде не могу найти ответ и нуждаюсь в помощи от вас, умных и творческих людей!

Спасибо


person Austin Clark    schedule 02.02.2016    source источник


Ответы (2)


Вот идея решения этой проблемы:

  1. передать RCIRC, LSHIFT и NOT на другую сторону следующим образом:

RCIRC-2(LSHIFT-1(NOT X))=00101 -> LSHIFT-1(NOT X) = LCIRC-2(00101)

LSHIFT-1(NOT X) = LCIRC-2(00101) -> NOT X = RSHIFT-1(LCIRC-2(00101))

НЕ X = RSHIFT-1(LCIRC-2(00101)) -> X = НЕ(RSHIFT-1(LCIRC-2(00101)))

X = НЕ(RSHIFT-1(LCIRC-2(00101)))

  1. реши:

X = НЕ(RSHIFT-1(LCIRC-2(00101)))

X = НЕ(RSHIFT-1(10100))

Х = НЕ(01010)

Х = 10101

И это было бы так. Дело в том, что при переходе с одной стороны на другую вы конвертируете слева направо и справа налево.

Так что это только одно правильное решение!

person PatrikWWDC    schedule 15.05.2016

Представьте каждый бит как буквы AE

(RCIRC-2(LSHIFT-1(НЕ ABCDE))) = 00101

(RCIRC-2(LSHIFT-1(abcde))) = 00101

(RCIRC-2(bcde0)) = 00101

e0bcd = 00101

E0BCD = 10010

B = 0, C = 1, D = 0, E = 1

X = *0101

person kxoraxe    schedule 13.01.2017