Умные вопросы
Войти
Регистрация
Задача о четырех тетрадах со сдвигом влево через перенос.
Возникла задача. Не прошу решить е за меня, но хотя бы помочь, как к ней подступиться.
Не могу нащупать алгоритма решения. : (
Дано 4 двоичных числа А=1110, B=1101, C=1110, D=1110. Следуя ниже определенному правилу привести
их к виду A=1110, B=1101, C=1011, D=0111.
Правило преобразования: за один ход можно сдвинуть влево с переносом пятого бита в первый
одновременно только три числа из четырех, число C изменяется всегда, одно из A, B, D не изменяется. Никакие другие операции недопустимы. Сдвигать можно только три числа сразу. Что то похоже на двоичное умножение с геометрической прогрессией вариантов. Даже элементарный алгоритм тупого перебора вариантов не могу придумать.
I) Количество итераций - произвольное. II) Количество итераций - минимальное.
P. S. В комментариях к сложности задачи написано, что она элементарная и не вызывает у большинства затруднений. :" ( Вот и хотелось бы спросить мнение большинства.
9 года
назад
от
Вован ННННН
2 Ответы
▲
▼
0
голосов
проблема где то на этапе формулировки возникает абсолютно не понятно что требуеться.
я так понимаю в слове 4 тетрады
при сдвиге на один бит влево слово как бы умножиться на 2 а флаговый регистр утсановиться значением старшего бита
и этот бит нужно вдвинуть в другой регистр и так 16 раз пока в регистора не станут одинаковыми
но вот это "можно сдвигать только 3 числа " убивает. И еше "сдвиг 5го бита с первый"
Преобразования никакого нет A=A B=B C=C D=D
И самое интересное во всем этом что у нас регистор кратен байту а тертада всегда пол байта.
Тогда если мы не можем иметь 4 числа а одно размером в слово и это слово для 16разрядных машин 16бит как раз 4 тетрады. Если бы у нас была число- малдшая тетрада в регистре то никак бы мые не сдвинули.
Мне какжеться задача если бы е не мудаки составляли звучала бы так копировать слово из одного регистра в другой через сдвиг. Ну и делалось бы в цикле за 16 итераций.
ЗЫ 5-й бит в первый нельзя запихать из 16 разрядного регистора нет такой команды.
9 года
назад
от
Света Кирюшина
▲
▼
0
голосов
Суммарное число сдвигов, которым подверглись числа A, В и D после любой итерации четно, так как в каждой итерации участвуют 2 из них. Но для преобразования чисел A и B требуется четное (и даже кратное 4) число сдвигов, а для преобразования D - нечетное. Следовательно, привести к требуемому виду невозможно даже эти 3 числа. Ищите опечатку .
9 года
назад
от
егор силенок
Связанные вопросы
2
ответов
Почему такой перевод?
8 года
назад
от
Виктория Дейс
2
ответов
Ударная волна от взрыва огибает препятствия?
10 года
назад
от
ЭН@ШТЕЙН
1
ответ
как зависит ток двигателя от приложенного напряжения?
9 года
назад
от
Галимова Руфия