Поиск любых сочетаний из К чисел
Gennadiy Usov
Дата: 23.03.2018 14:01:18
Большая просьба!
Не подскажите, где можно найти алгоритм поиска всех возможных сочетаний из К чисел, включая одно число.
Хотя с одним числом все ясно.
Данный алгоритм необходим для поиска сочетаний двоек вертикалей при определения решений на досках МхМ.
В дальнейшем необходимо будет ввести ограничения, например, цифра 4 не может быть с цифрой 7 в одном сочетании.
Dima T
Дата: 23.03.2018 14:03:50
Gennadiy Usov
Дата: 23.03.2018 16:19:12
Dima T,
Эту формулу я видел.
Думал. что кто-то видел алгоритм, реализующий эту формулу.
exp98
Дата: 23.03.2018 17:32:55
Ну ведь если для парных, то ваще просто в лоб: каждый с каждым и "пополам", верхний треугольник 2мерной матрицы перебора.
Gennadiy Usov
Дата: 23.03.2018 17:45:40
exp98,
а если и по 3, и по 4 и по.....
m7m
Дата: 23.03.2018 18:48:28
Gennadiy Usov |
---|
exp98, а если и по 3, и по 4 и по..... |
Если я правильно понял и нигде не ошибся
то как-то так
Сочетание из N по К (K>1)
1. цикл L от 1 до N-K+1
1.1. Заполняем M[1]=L; M[2]=L+1;... M[K-1]=L+K-2; --(Это тоже циклом, лень писать)
1.2. цикл J от L+K-1 до N
1.2.1. M[K]=J;
1.2.2. Здесь имеем в M очередное сочетание
Александр Бердышев
Дата: 23.03.2018 19:03:51
Буквально на прошлой неделе решал задачу с сочетаниями.
ABCD - 4 символаю
сочетаний будет 2^4 - 1. Если сочетаний n, то 2^n - 1
Как решать:
ABCD
0001
0010
0011
0100
0101
0110
0111
1111
1001
1010
1011
1100
1101
1110
1111
Строишь такую матрицу из 0 и 1.
Потом цикл от i = 1 до n
i - строка.
Где единицы - берёшь символ, где 0 - не берёшь символ.
Как ты понял, в матрице будет i в двоичном представлении.
Gennadiy Usov
Дата: 23.03.2018 19:30:39
Александр Бердышев,
Идея хорошая.
Но дело в следующем: как заполнить такую матрицу, размером, например, 120 х 120.
Вариантов где-то 6,64614E+35.
Можно начать и с меньших значений.
Dima T
Дата: 23.03.2018 19:54:38
Gennadiy Usov |
---|
Dima T,
Эту формулу я видел. Думал. что кто-то видел алгоритм, реализующий эту формулу. |
Есть формула вычисления приближенного значения факториала, но для точного значения считать как в школьном учебнике, т.е. для n! перемножить числа от 1 до n.
Gennadiy Usov
Дата: 23.03.2018 20:00:07
Gennadiy Usov |
---|
Александр Бердышев,
Идея хорошая. Но дело в следующем: как заполнить такую матрицу, размером, например, 120 х 120. Вариантов где-то 6,64614E+35. Можно начать и с меньших значений. |
Ошибся.
Для доски 1000х1000, наверное, потребуется сделать комбинации из 67 чисел.
Вариантов где-то 7,3787E+19.