|
|
|
нахождение суммы близкой к заданной из массива
|
|||
|---|---|---|---|
|
#18+
Только начал изучать Java (1 месяц) и сразу вопрос: Никак не могу сообразить алгоритм. Решение не нужно, просто наведите на мысль... Есть массив элементов. Обычно длина не превышает 10 элементов. элементы - целые вещественные числа. Всегда положительные Есть сумма, которая задается изначально. Скороее всего эту сумму подобрать не получится (из условия). Нужно вернуть массив элементов сумма которых самая близкая к заданной. Если вариантов больше чем один, то вернуть все массивы. Прошу прощения за сумбурное описание, но я буду исправляться и повышать свой уровень. Не откажите новичку. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 03:47 |
|
||
|
нахождение суммы близкой к заданной из массива
|
|||
|---|---|---|---|
|
#18+
Ваша проблема никак не соотносится с Java. Создаёте словесное описание алгоритма, а потом "переводите" полученное на Java. Если "как можно ближе" означает "максимально возможная, не превышающая заданную" и других ограничений нет, то я бы искал "из минимально возможного числа слагаемых": сортируем массив по убыванию, выкидывая все неподходящие числа и "начинаем с первой позиции" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 05:28 |
|
||
|
нахождение суммы близкой к заданной из массива
|
|||
|---|---|---|---|
|
#18+
On 16.07.2014 4:47, SashkaBol wrote: > Есть массив элементов. Обычно длина не превышает 10 элементов. элементы - целые вещественные числа. Всегда положительные > Есть сумма, которая задается изначально. Скорее всего эту сумму подобрать не получится (из условия). Нужно вернуть > массив элементов сумма которых самая близкая к заданной. Если вариантов больше чем один, то вернуть все массивы. Поищи по https://www.google.ru/search?q=задача о рюкзаке Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 09:50 |
|
||
|
нахождение суммы близкой к заданной из массива
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovВаша проблема никак не соотносится с Java. Создаёте словесное описание алгоритма, а потом "переводите" полученное на Java. Относится, ведь реализовывать я ее буду в Java. И, естественно, чтобы не плодить тем, буду задавать вопросы тут. Basil A. SidorovЕсли "как можно ближе" означает "максимально возможная, не превышающая заданную" и других ограничений нет, то я бы искал "из минимально возможного числа слагаемых": сортируем массив по убыванию, выкидывая все неподходящие числа и "начинаем с первой позиции" :) А что если достаточно убрать пару значений из середины, которые не находятся по-соседству... Я тоже думал про частный случай рюкзака. Буду изучать вопрос. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 17:09 |
|
||
|
нахождение суммы близкой к заданной из массива
|
|||
|---|---|---|---|
|
#18+
SashkaBolА что если достаточно убрать пару значений из середины, которые не находятся по-соседству...Это проблема алгоритма генерации перестановок. Тоже ничего java-specific ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 17:22 |
|
||
|
нахождение суммы близкой к заданной из массива
|
|||
|---|---|---|---|
|
#18+
Спасибо, что не обходите тему стороной. А задачу о рюкзаке можно использовать для long переменных? Я себе слабо представляю каких размеров должен быть массив. Хотя в то же время можно избавиться от нескольких разрядов и перевести в int, но, боюсь, погрешность будет высокая... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 18:03 |
|
||
|
нахождение суммы близкой к заданной из массива
|
|||
|---|---|---|---|
|
#18+
Разбирая задачу о рюказаке, во всех примерах (которые я смог найти) идет возврат максимальной стоимости близкой к заданной. Но мне нужно вернуть массив элементов, которые составляют эту стоимость, притом их может быть несколько... Может у кого в загажниках есть подобные примеры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 18:26 |
|
||
|
нахождение суммы близкой к заданной из массива
|
|||
|---|---|---|---|
|
#18+
SashkaBolСпасибо, что не обходите тему стороной. А задачу о рюкзаке можно использовать для long переменных? Я себе слабо представляю каких размеров должен быть массив. Хотя в то же время можно избавиться от нескольких разрядов и перевести в int, но, боюсь, погрешность будет высокая... Задачу о рюкзаках можно решать в short, int, long, float, double переменых. Твой вопрос как уже сказали выше состоит из двух частей. 1) Собственно алгоритм. Его можно описать словами, блоксхемой или любым псевдо-языком. 2) Реализация. Это перевод собственно алгоритма на язык Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 18:40 |
|
||
|
нахождение суммы близкой к заданной из массива
|
|||
|---|---|---|---|
|
#18+
В начальном условии не доглядет, что каждый элемент массива имеет стоимость. Стоимость должна быть максимально. Т.е. самый типичный рюкзак. Разобрался с рюкзаком, разобрался как вывести результат. Можете подсказать, как методом print вернуть массив или List? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 22:17 |
|
||
|
нахождение суммы близкой к заданной из массива
|
|||
|---|---|---|---|
|
#18+
Сам спосил, сам решил)) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2014, 22:26 |
|
||
|
нахождение суммы близкой к заданной из массива
|
|||
|---|---|---|---|
|
#18+
Еще вопрос. Как переделать код чтобы возвратить все возможные варианты комбинаций? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2014, 04:19 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38697379&tid=2126885]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
25ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 327ms |

| 0 / 0 |
