![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 15.12.2013
Сообщений: 414
|
![]()
Есть массив из 8 чисел
int rest[12]={20,10,10,5,3,2,1,1}; нужно сделать новый массив из 6 элементов с помощью перестановок так,чтобы получилось число 71 Я не знаю,как такое сделать(((((( |
![]() |
![]() |
![]() |
#2 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
![]()
В чем суть перестановок?
Потому что перестановки не предполагают объединения/замены элементов. Как вычисляется 71? Сумма элементов?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
![]() |
![]() |
![]() |
#3 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
![]()
Я честно говоря тоже ничего не понял.... Опишите задание по подробнее..
![]()
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
включаю телепатор...
в связи с тем, что сумма ВСЕХ элементов заданного набора составляет 52, то: либо насчёт 71 автор топика ошиблась, либо речь идёт о банальном разбиении денежной суммы на представленные номиналы купюр (причём, нужно получить ВСЕ возможные варианты представления суммы. ну, например, для суммы = 4 это варианты: 1+1+1+1 2+1+1 2+2 И, предполагаю, что в таком случае порядок не важен (ну 2+1+1 то же самое, что 1+2+1 ) p.s. резонно возразить, что если в наборе представлены НОМИНАЛЫ, каждый из которых может быть использован не ограниченное число раз, то зачем в наборе по ДВАЖДЫ представлены номиналы 10 и 1. Ну это может быть банальной ошибкой. А может быть, там задумано, чтобы усложнить задачу... ![]() p.p.s. на истину не претендую, просто предположение сделал ![]() |
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]() Цитата:
2. Для чего, для последовательности состоящей из 8-ми чисел, зарезервирован массив из 12-и элементов? 3. В условии не указано, можно ли использовать одно и то-же число шесть раз подряд, или можно использовать только имеющуюся последовательность? Ответьте на эти вопросы, и мы постараемся Вам помочь. Ну и по теме. Если в условии выполняется пункт 3. Формула для расчёта такая: !6 * !8 = 29030400 комбинаций перестановок. Для полного перебора, необходимо 14-ть вложенных циклов. Учитывая, что один цикл выполняется 1 мсек (0,001с) = 29030 с или 484 минуты или 8 часов непрерывного счёта.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 23.01.2014 в 09:09. |
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 15.12.2013
Сообщений: 414
|
![]()
А да сорри, я забыла написать что изначально в новом массиве, в который будут заносится подходящте числа уже есть 50
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 15.12.2013
Сообщений: 414
|
![]() |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 15.12.2013
Сообщений: 414
|
![]()
Вот что получилось,бредятина, не знаю,что делать
Код:
|
![]() |
![]() |
![]() |
#9 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
![]()
ТС нужно выбрать из 8 элементов пять, чтобы при сложении с числом 50 получить в итоге 71. Если брать приведенный ею выше массив {20,10,10,5,3,2,1,1}, то нам понадобится 10+5+3+2+1 +50 =71. В общем получится 4 ответа(т.к. у нас две "10" и две "1"), которые по этому требованию подходят.
Здесь не перестановки нужны, а сочетания. Получается С из 8 по 5 = 56 сочетаний, так что никаких 8 часов на раздумья компа не нужно. Формула есть в вики, если кто не помнит или не проходил. Вот алгоритм генерации сочетаний, но он на pascal'e. А я уже изрядно измучен, поэтому не смогу сейчас вам чем-то существенным помочь: Код:
Если помог, проси поставить минус. Будь оригинален!
Последний раз редактировалось Rin; 24.01.2014 в 01:53. |
![]() |
![]() |
![]() |
#10 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]()
Пока так..
Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача на подбор чисел и выведения кол-ва вариантов | hruma | Помощь студентам | 5 | 29.11.2013 15:13 |
Сумма с несколькими критериями, подсчёт/сумма нечётных чисел | XPsihopaTX | Microsoft Office Excel | 3 | 11.10.2012 15:00 |
Сумма чисел | Dima-War | Общие вопросы C/C++ | 9 | 20.03.2012 23:14 |
Как в Excel'е организовать пересчёт значений в ячейках так чтобы их сумма оставалась постоянной? | Sideshow | Microsoft Office Excel | 16 | 18.10.2011 06:44 |
Сумма чисел | gamer123 | Помощь студентам | 2 | 19.01.2008 20:42 |