#алгоритм #математика #комбинаторика
Необходимо построить сочетания всех возможных размеров так, чтобы элементы в сочетаниях не совпадали (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
Комментариев нет:
Отправить комментарий