Страницы

Поиск по вопросам

среда, 4 марта 2020 г.

Генерация сочетаний

#алгоритм #математика #комбинаторика


Необходимо построить сочетания всех возможных размеров так, чтобы элементы в сочетаниях
не совпадали (1,2,3; 1,3,2; 2,1,3; 2,3,1; 3,1,2; 3,2,1 - одни и те же сочетания)

Например, даны числа: 1,2,3,4

Ответ:

1
2
3
4

12
13
14
23
24
34

123
124
134

1234

Можно и псевдокод.
    


Ответы

Ответ 1



Вы забыли еще 234 и пустое сочетание :) Берем число, каждому биту которого соответствует один элемент вашего множества, и проходим все числа в цикле - от 00..00 до 11..11. Все. Каждое число - это одно "сочетание" (вообще-то это генерация всех подмножеств данного множества), которое строим, выбирая элементы, соответствующие единичным битам... Например, ваше 1234 - соответственно, 4-битное число... 0000 пустое множество 0001 1 0010 2 0011 12 0100 3 .... 1110 432 1111 4321

Комментариев нет:

Отправить комментарий