Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2014, 20:59   #1
espleth
Пользователь
 
Регистрация: 08.09.2013
Сообщений: 37
По умолчанию Задача с перебором всех сочетаний в массиве

Дан массив. Пусть для примера в нем будут числа 1, 3, 5, 7, 9
Дано число - n
Нужно найти все возможные сочетания n чисел в массиве.
Например если n = 3, то будет выведено
1 3 5, 1 3 7, 1 3 9, 1 5 7, 1 5 9, 1 7 9, 3 5 7, 3 5 9, 3 7 9, 5 7 9.
espleth вне форума Ответить с цитированием
Старый 07.12.2014, 20:43   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Интересная задача. С удовольствием посмотрю наработки.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 07.12.2014, 23:49   #3
espleth
Пользователь
 
Регистрация: 08.09.2013
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Интересная задача. С удовольствием посмотрю наработки.
Нашел алгоритм решения из учебника дискретной математики:

Со знанием этого алгоритма задача упрощается, хотя все равно слету не решить.
Но можно еще немного упростить: сделать в точности как там, как будто у нас массив от 0, 1, 2, 3, 4. И забьем на то, что в исходном массиве у нас 1, 3, 5, 7, 9. Потом у нас получатся сочетания, 0 1 2, 0 1 3, 0 1 4 и т.д., и мы сделаем для каждого сочетания: comb[i] = arr[comb[i]], где comb - массив, в котором находится сочетание, а arr - исходный массив.
espleth вне форума Ответить с цитированием
Старый 08.12.2014, 00:03   #4
chegaintheclub
Новичок
Джуниор
 
Регистрация: 07.12.2014
Сообщений: 1
По умолчанию

Здравствуйте . Собственно , это моя задача , а писал друг со своего аккаунта.на данный момент я решил задачу способом вложенных циклов.Но
вся штука в другом - эта задача является лишь локальной - то бишь подзадачей в более крупной , а именно : в файле записано количество различных наименований товаров (1 число) потом количество совершенных покупок (1 число).затем в строках идут последовательно : количество товаров , купленных в этот раз потом сами номера товаров.в итоге надо вывести таблицу комбинаций товаров (из 1 , 2 , 3 .... количество всех товаров) , которая чаще всего встречается среди покупок.
Нужно сделать в двух алгоритмах ( вложенные циклы при нахождении этих комбинаций - 1 вариант , второй вариант - с помощью рекурсии).почти весь код готов - не хватает только считывания строк с покупками , но , думаю с этим справлюсь.интереснее всего увидеть реализацию рекурсивно.
раз интересно - скидываю код (код черновой и быдловой , на нем сам алгоритм тестил).
Вложения
Тип файла: txt Новый текстовый документ (3).txt (785 байт, 207 просмотров)
chegaintheclub вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализовать два метода поиска строк в массиве: поиск перебором, бинарный поиск на языке Pascal DimzNOVIchok45 Помощь студентам 7 19.09.2014 21:40
Перебор всех не повторяющихся сочетаний элементов в одномерном массиве Vladislav000 Общие вопросы C/C++ 0 20.05.2014 11:42
Перечисление всех возможных сочетаний (комбинаторика) C# irene17 Помощь студентам 5 18.04.2014 13:41
Найти количество сочетаний из n по k и вывести все комбинации этих сочетаний на экран Рон99 Паскаль, Turbo Pascal, PascalABC.NET 2 14.12.2011 00:05
В массиве A каждый элемент, кроме первого, заменить суммой всех предыдущих элементов aiktz Помощь студентам 7 11.10.2010 21:52