![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Kiryousha |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 26.1.2009 Репутация: нет Всего: нет |
Всем здравствуйте!
Срочно необходима помощь в решении следующей задачи: из заданного массива целых чисел выбрать набор, сумма элементов которого будет наиболее близка к заданному числу. Вывести на экран найденные элементы и полученную сумму. Заранее спасибо! |
|||
|
||||
| Strell |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 7.12.2006 Репутация: нет Всего: 1 |
Можно реализовать с рекурсией, можно без. решай сам.
Вот набросал пример с рекурсией. Ну а на следующий раз - в центр помощи!!!!
|
|||
|
||||
| Kiryousha |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 26.1.2009 Репутация: нет Всего: нет |
Спасибо большое за оперативную помощь! Хулиганить больше не буду!
P.S. Кстати, я девушка! Это сообщение отредактировал(а) Kiryousha - 26.1.2009, 15:27 |
|||
|
||||
| Kiryousha |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 26.1.2009 Репутация: нет Всего: нет |
Ознакомилась с данным алгоритмом более подробно. Он не отрабатывает, к примеру, следующую ситуацию:
есть массив, отсортированый по убыванию {11,7,5,3}. Ищу набор элементов, наиболее близкий к 19. Резульат получаю [11,7], хотя более правильным будет [11,5,3]. Есть предложение сделать так: в отсортированном по убыванию массиве, первый элемент поочерёдно сложить с последующими элементами массива. Получим новую последовательность. Для приведённого выше примера - {18,16,14}. Сравнивая с искомым числом каждый элемент, видим, что предел поиска ещё не достигнут, тогда к новой полученной последовательности начинаем прибавлять минимальное значение из последовательности, в нашем случае 3. Получаем {21,19,17}. Что и требовалось найти. В общем случае: Если бы на данном шаге мы получили значение разности между искомым числом и элементом массива большее, чем разность, найденную в предыдущей последовательности, то, как результат, взяли бы соответственно меньшее из них. Если бы на данном шаге не достигли наилучшего результата, то продолжали прибавлять минимальные элементы. Может не самый красивый алгоритм, но походит для любых последовательностей. Проблема в том, как его реализовать. |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |