|
Найти все возможные комбинации
|
|||
---|---|---|---|
#18+
Привет всем. Задача такова: Есть определённая сумма, например 1000. И есть определенные числа, которые вводятся пользователем. Нужно вывести все возможные комбинации сумм этих чисел, чтобы равнялись 1000. Числа повторяться не могут. Все числа больше нуля. Помогите, кто соображает. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2011, 16:46 |
|
Найти все возможные комбинации
|
|||
---|---|---|---|
#18+
несложно, а цель какая? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2011, 16:47 |
|
Найти все возможные комбинации
|
|||
---|---|---|---|
#18+
Цель: 1. бухгалтера часто подгоняют циферки под нужную сумму. 2. Вторая цель моя личная: я хотел написать рекурсию, из которой постоянно вычиталось число из суммы и т.д., если равно нулю то норм, а если <0, то нужно удалить одно число из ряда и дальше (у меня не получилось реализовать свой алгоритм). Хочу узнать верный алгоритм. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2011, 17:08 |
|
Найти все возможные комбинации
|
|||
---|---|---|---|
#18+
Обычно задачу решают либо методом ветвей и границ, либо методами динамического программирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2011, 18:41 |
|
Найти все возможные комбинации
|
|||
---|---|---|---|
#18+
crash-mschЦель: 1. бухгалтера часто подгоняют циферки под нужную сумму. 2. Вторая цель моя личная: я хотел написать рекурсию, из которой постоянно вычиталось число из суммы и т.д., если равно нулю то норм, а если <0, то нужно удалить одно число из ряда и дальше (у меня не получилось реализовать свой алгоритм). Хочу узнать верный алгоритм.Читай учебники/методички/рефераты на тему "Задача о рюкзаке" или "Knapsack problem". Даже в Википедии есть приличные решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2011, 18:59 |
|
Найти все возможные комбинации
|
|||
---|---|---|---|
#18+
авторбухгалтера часто подгоняют циферки под нужную сумму Кто бы сомневался!! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2011, 20:50 |
|
Найти все возможные комбинации
|
|||
---|---|---|---|
#18+
crash-msch.... И есть определенные числа, которые вводятся пользователем. Количество чисел фиксировано? Или определяется заранее? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2011, 13:54 |
|
Найти все возможные комбинации
|
|||
---|---|---|---|
#18+
сами числа определённые, естественно и количество определённое. суть в том что есть платёжки. 13024 14027 72303 .... и есть сумма расхода к примеру 100000. нужно подгадать под эту сумму. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2011, 22:10 |
|
Найти все возможные комбинации
|
|||
---|---|---|---|
#18+
Так навскидку (возможно дилетантский подход, я долго не думал): Определяете наибольший платеж, который меньше заданной суммы затем, вычитаете платеж из суммы и проверяете равенство нулю остатка, если не ноль, то с остатком делаете вышеописанную операцию. Для реализации метода я бы использовал рекордсет + колекцию ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2011, 23:37 |
|
Найти все возможные комбинации
|
|||
---|---|---|---|
#18+
А забыл уточнить, если остаток – платеж <0 то данный платеж для этого ряда не подходит ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2011, 23:41 |
|
Найти все возможные комбинации
|
|||
---|---|---|---|
#18+
TpaBkaТак навскидку Это жадный алгоритм, и он редко даёт оптимум. Особенно когда элементы одного порядка с целевой суммой. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2011, 00:08 |
|
Найти все возможные комбинации
|
|||
---|---|---|---|
#18+
TpaBkaТак навскидку (возможно дилетантский подход, я долго не думал): Определяете наибольший платеж, который меньше заданной суммы затем, вычитаете платеж из суммы и проверяете равенство нулю остатка, если не ноль, то с остатком делаете вышеописанную операцию. Для реализации метода я бы использовал рекордсет + колекцию Пробовал примерно также. Если не получилось, то удалять первый элемент и пробовать заново? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2011, 00:52 |
|
Найти все возможные комбинации
|
|||
---|---|---|---|
#18+
crash-mschПробовал примерно также. Если не получилось, то удалять первый элемент и пробовать заново? теперь и ты познал рекурсию :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2011, 01:52 |
|
Найти все возможные комбинации
|
|||
---|---|---|---|
#18+
crash-msch, в своей проге я делал чуток по-другому. не заморачивался насчёт больше меньше, перебирал все элементы. сначала все числа, потом суммы из всех возможных комбинаций сумм двух чисел, трёх, и тд. кажется, что мудрённо, но комп монстр, выполнит всё за доли секунд ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2011, 15:24 |
|
|
start [/forum/topic.php?fid=60&fpage=90&tid=2158266]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 372ms |
total: | 508ms |
0 / 0 |