| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Цепной код |
| Автор: Blacksnow 5.8.2004, 16:10 |
| Есть идеи? Решение через граф не предлагать. |
| Автор: Y-Vladimir 5.8.2004, 20:55 |
| Поясни подробнее, что такое цепной код и почему тебе графы не подходят |
| Автор: Blacksnow 5.8.2004, 22:32 |
| Перебор 0-1 векторов. Цепной код. Строиться 0-1 вектор длины 2^n, затем все 0-1 вектора длины n получаються циклическим сдвигом из построенного. Пример для n=4: 0111101011001000 0011110101100100 0001111010110010 0000111101011001. *** Потому что я знаю как он строиться с помощь графов. |
| Автор: Y-Vladimir 6.8.2004, 00:38 |
| Что-то я не совсем понимаю, в чем здесь сложность? А что, нельзя просто пройтись в цикле по вектору и циклически сдвинуть весь входной вектор на одну озицию вправо? Нам ведь входной вектор дан и требуется только получить (2^n)-1 сдвигов, насколько я понял задачу. |
| Автор: Akina 6.8.2004, 08:47 | ||
Как идея:
или я чего не так понял? |
| Автор: Blacksnow 6.8.2004, 10:10 | ||
Задача состоит в том, чтобы построить вектор длины 2^n.
На вход даеться число n, т.е. надо перебрать все 0-1 вектора длины n. Для решения этой задачи строиться цепной код длины 2^n, потом он циклически сдвигаеться n раз. |
| Автор: Y-Vladimir 6.8.2004, 16:06 | ||
Т.е. как я понимаю, для n=3 нужно построить следующее: 000 001 010 011 100 101 110 111 Если так, то я не совсем понимаю, причем здесь цепной код, т.к. для построения этой последовательности существует много алгоритмов. |
| Автор: Blacksnow 6.8.2004, 16:19 | ||||
Не так их и много. *** Меня интересует именно этот алгоритм. Я же не просил способы перебора мне сказать. ***
Нет, надо построить 11101000. |