Задачка

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Задачка

Сообщение Antonariy » 11.12.2007 (Вт) 17:00

Товарищ один озадачил...
Есть массив положительных числовых значений, целых и дробных.
Нужно собрать набор элементов, сумма которых равна указанному значению.
Ничего умнее полного перебора с предварительной сортировкой не придумал.
Лучший способ понять что-то самому — объяснить это другому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 11.12.2007 (Вт) 20:39

Решение всегда по условию существует?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 11.12.2007 (Вт) 22:31

Может и нет. А может быть и несколько решений.
Это задача из области бухгалтерии - нужно отправить в небытие несколько счетов на заданную сумму. Для сведения годового баланса :)
Лучший способ понять что-то самому — объяснить это другому.

andrewstolbov
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 65
Зарегистрирован: 23.01.2007 (Вт) 11:02

Сообщение andrewstolbov » 12.12.2007 (Ср) 5:15

Antonariy писал(а):Это задача из области бухгалтерии - нужно отправить в небытие несколько счетов на заданную сумму. Для сведения годового баланса :)


А может просто выпишут новый счет на заданную сумму и отправят его в небытие?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.12.2007 (Ср) 8:57

Помоему это та же задача на выдачу сдачи.
Для удобства можешь ко всем числам прибавить какую-нибудь константу, чтобы все значения были больше нуля. А потом набираешь нужную тебе сумму, начиная с самых больших чисел.
Lasciate ogni speranza, voi ch'entrate.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 12.12.2007 (Ср) 10:20

Собственно так я и сделал, за исключением константы - все значения и так больше нуля. Просто подумал, может есть более продвинутый алгоритм.
Лучший способ понять что-то самому — объяснить это другому.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.12.2007 (Ср) 10:25

Была какая-то утилита, которая сводила баланс (расхождения из-за того, что округленная сумма не совпадала с суммой округлений). Но это было давно и я не помню, как она работала.
Помоему просто строилась система из N линейных уравнений, где N -- количество чисел.
Ну а поскольку N велико, то обычные аналитические методы решения уравнений не годятся, использовались численные методы.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList