Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
repin777
Зарегистрирован: 16.12.2003 Сообщения: 3
|
Добавлено: Вт Мар 02 2004 10:20 Заголовок сообщения: Помогите придумать алгоритм. |
|
|
Данн массив длиной n и дано число k, нужно реализовать кол-во сочетаний nСk = n!\(k!(n-k)!).
Пример массив (1,2,3,4). к = 3, тогда kCn = 4. Результат работы алгоритма:
(1,2,3)
(1,3,4)
(2,3,4)
(1,2,4)
(порядок не важен).
Спасибо
________ _________________ -=/\ Ё }{ @=- |
|
Вернуться к началу |
|
 |
spock Гость
|
Добавлено: Ср Мар 03 2004 19:03 Заголовок сообщения: |
|
|
тебе нуже эффективный алгоритм, или так чтобы просто делал, то что нужно?
Неэффективный алгоритм (медленный и для малых n и k) могу набросать. А вообще есть сайт www.allalgoritms.ru (или что то вроде), где можно найти и эффективный алгоритм (задачка то стандартная).
 |
|
Вернуться к началу |
|
 |
GREA
Зарегистрирован: 14.05.2003 Сообщения: 758 Откуда: Новосибирск
|
Добавлено: Ср Мар 03 2004 21:14 Заголовок сообщения: |
|
|
Рекурсия + глобальный массив.
Уровень рекурсии=№"знакоместа".
На каждом уровне выбираем по порядку из всех незадействованных, и рекурсивно переходим к следующему знакоместу при каждом выборе.
Если для уровня все незадействованные элементы закончились, то выйти с текущего уровня рекурсии.
Если для первого знакоместа все элементы перебраны, то stop.
Задействованные элементы хранятся в глобальном массиве, либо его (массив) можно передавать в качестве параметра. |
|
Вернуться к началу |
|
 |
Гость
|
Добавлено: Ср Мар 03 2004 21:29 Заголовок сообщения: |
|
|
spock писал(а): | тебе нуже эффективный алгоритм, или так чтобы просто делал, то что нужно?
Неэффективный алгоритм (медленный и для малых n и k) могу набросать.
 |
Нужен простой алгоритм где "Це из эн по ка" (значение )не более 1-100. |
|
Вернуться к началу |
|
 |
|