|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.05.2011, 16:14 | #1 |
Форумчанин
Регистрация: 24.03.2011
Сообщений: 120
|
Сочетания и алгоритм их получения
Устал гуглить, а заказик сдавать через несколько часов. Всё то работает, но одна процедура сделана по шумок, типа пока пусть будет так... вот хочу всё сделать на совесть.
Есть массив от "0" до "n-1" с элементами равными (1,2,3,...,n). Нужно создать функцию: закидываем этот массив, количество его элементов и на выходе получаем наш же массив, но первые m элементов(где m<n) составляют новое сочетание(т.е. функция переставляет местами элементы массива). И вот наша задача вставить такую функцию в цикл от "1" до "возможного количества сочетаний для данного массива", приписать в этом же цикле под нашей функцией вывод на экран массива(первых m членов достаточно). В итоге получить следующее: Для 4 позиций(m=4) и шести элементов(n=6) массив выглядит так: 1,2,3,4,5,6. Должны получить: Код:
|
22.05.2011, 16:44 | #2 | ||
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Что-то сегодня народ здесь на комбинаторику потянуло!..
... Цитата:
Цитата:
Код:
|
||
22.05.2011, 16:51 | #3 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Ksardas13
Помогите с алгоритмом. Заранее благодарен. алгоритм называется lulz здесь демонстрация его применения
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
22.05.2011, 17:02 | #4 |
Форумчанин
Регистрация: 06.05.2011
Сообщений: 287
|
А смысл при данных условиях делать перестановку элементов массива? Решается-то всё несколькими циклами...
|
22.05.2011, 17:40 | #5 | ||
Форумчанин
Регистрация: 24.03.2011
Сообщений: 120
|
Спасибо большое, буду копаться.))
Цитата:
Пример с n=6 это всего лишь пример.) Цитата:
Пытаюсь удовлетворить.) Последний раз редактировалось Ksardas13; 22.05.2011 в 18:46. |
||
22.05.2011, 18:24 | #6 | |
Форумчанин
Регистрация: 06.05.2011
Сообщений: 287
|
Цитата:
|
|
22.05.2011, 19:06 | #7 |
Форумчанин
Регистрация: 24.03.2011
Сообщений: 120
|
Ага, начинаю понимать что Вы имеет ввиду! Наверное. Вот вчера ночью пытался эти циклы вывести... Не подскажете какой они имеют вид?
Первое на чём остановился - это цикл тупо сдвигающий массив влево(а первый элемент идёт на место последнего) до тех пор, пока он не вернётся в исходное состояние. Так получаем 6 комбинаций из 15-ти приведённых в примере. Как получить остальные? |
22.05.2011, 19:58 | #8 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
|
22.05.2011, 20:24 | #9 |
Форумчанин
Регистрация: 24.03.2011
Сообщений: 120
|
Заказчик студент. Задание из некой криво написанной методы для преподши, которая С++ читает впервые(я сам в шоке)).
Вот там строго прописана процедура, возвращающая перестановки массива(номеров массива), которая крутится в почти бесконечном цикле, пока не выполнится определённое условие(ищем геометрические фигуры, среди множества точек). Но приведённая процедура в методе не даёт всех сочетаний... вот мучаюсь как бы её исправить -_- Если б не это ограничение, мозг бы болел меньше. |
22.05.2011, 20:34 | #10 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Всё в этой жизни когда-нибудь приходится делать впервые...
... Ну, держите ещё с индексами, без выдёргивания подмассива. Код:
Извините, с верхним пределом цикла в одном месте ошибся. Последний раз редактировалось Vago; 22.05.2011 в 21:46. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C# всевозможные сочетания | xil | Общие вопросы .NET | 8 | 04.01.2011 17:53 |
Двубуквенные сочетания | 0479 | Общие вопросы по Java, Java SE, Kotlin | 0 | 07.11.2010 19:56 |
Клавиатурные сочетания | kzld | Microsoft Office Excel | 2 | 13.09.2010 14:51 |
Алгоритм получения диапазона IP | zAlexandrz | Общие вопросы Delphi | 4 | 26.02.2010 22:43 |
Сочетания. | Пaвeл | Помощь студентам | 2 | 12.03.2009 07:57 |