Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Генерация групп бинарных кодов


Автор: Helmet 29.10.2009, 12:55
Здравствуйте. Стоит задача реализовать генерацию групп бинарных кодов заданной длины таких, что коды внутри группы будут различаться заданным количеством разрядов. Коды не должны повторяться.
Т.е. если например задана длина кода 4 и кол-во отличающихся разрядов 4, то должно быть сгенерировано 8 групп по 2 кода в каждой:
0000 0001 0011 0010 0101 0100 0110 1000
1111 1110 1100 1101 1010 1011 1001 0111
Может существуют какие-либо алгоритмы, способные помочь в решении данной задачи? Или хотя бы направление для поиска?

Автор: dengalf 31.10.2009, 07:22
По-моему самым простым(хотя далеко не рациональным) способом будет перебор:
1) первый набор - всегда 000..00, находим ему все пары
2) затем увеличиваем следующий "первый" набор на единицу (те хх...х + 00...1)
3) смотрим, чтобы не было похожих наборов, если они есть переходим к (4) иначе находим ему все пары и снова (2)
4) повторяем (2) и (3), пока общее количество наборов не станет  2^n штук
Если не ошибся и правильно понял задачу, то вроде так
Это если совсем глупо, а так - думаю где-то в области комбинаторики порыть

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)