|
3 / 3 / 3
Регистрация: 26.02.2014
Сообщений: 49
|
|
Подбор чисел из массивов для получения нужной суммы26.03.2014, 15:01. Показов 31871. Ответов 18
Метки нет (Все метки)
Здравствуйте!!! Не могу придумать алгоритм для решения задачи:
Переформулировал задачу ибо нужна помощь в алгоритме а не написании кода. Есть 2 массива каких то чисел в сумме дающих какую то сумму к примеру 1250 или 1500 Так вот задача на основе двух исходных массивов получить два массива чисел дающих 1000 и отдельно 250 Или 1000 и 500 к примеру. При чем чтоб в обоих новых массивах содержались числа и из первого и из второго исходных массивов. Очень нужна помощь=(
0
|
|
| 26.03.2014, 15:01 | |
|
Ответы с готовыми решениями:
18
Подбор нужной суммы из заданных чисел С Повторением
Подсчет нужной суммы из выборки чисел в Excel 2007 |
| 26.03.2014, 17:04 | |
|
Не по теме: Всё же советую переписать задачу дословно, может Вы не правильно поняли задание. Хоть и похоже на правду
0
|
|
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
|
| 26.03.2014, 17:14 | |
|
thisiswhite, а если это сделать невозможно?
0
|
|
|
3 / 3 / 3
Регистрация: 26.02.2014
Сообщений: 49
|
|
| 26.03.2014, 19:16 [ТС] | |
|
Это жутко плохо если не возможно! Ибо это важная часть моего дипломного.
Добавлено через 5 минут Надо придумать реализацию любыми путями. Данный участок программы собирает в гриде все часы возложенные ранее на плечи одного преподавателя по двум формам ЗФО и ДФО и затем в отчете разбивает его часы по ставке и если ставка 1.25 или полоторы или 2 в отчете должны быть отдельно часы дающие целую ставку и часы дающие в сумме 0.25 ставки. И это бы уже было воплащено в жизнь как минимум перебором. Если бы не одно НО!!! и 1 ставку и 0.25 должны попасть часы и из ЗФО и из ДФО. Добавлено через 2 минуты К слову не обязательно получать точно 1000 можно + - Погрешность допустима не большая.
0
|
|
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
||
| 26.03.2014, 20:02 | ||
|
Если совсем уж грубо,то можно поступить так: 1.Слили 2 массива в 1,отсортировали. 2.Нашли max элемент. 3.Из большей суммы вычли этот элемент.Если оставшееся меньше половины,ищем совпадение по этому элементу.Нашли.Задача решена. 4.Ищем следующий max и переходим к пункту 3. И так далее либо до получения 0,либо до ухода в минус. Если ушли в минус задача усложняется,надо перейти вверх на деление и поискать не максимальный а второй максимальный. В худшем случае получим полный перебор. ограничение с разными массивами сложнее,как вариант чередовать поиск по разным массивам.
1
|
||
|
3 / 3 / 3
Регистрация: 26.02.2014
Сообщений: 49
|
|
| 26.03.2014, 22:26 [ТС] | |
|
Как вариант. Но надо ещё подумать может что придумаем оришенальнее.
0
|
|
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
|
| 26.03.2014, 22:39 | |
|
thisiswhite, если придумаете - напишите,было бы любопытно взглянуть.
0
|
|
|
194 / 174 / 30
Регистрация: 10.07.2012
Сообщений: 800
|
|
| 27.03.2014, 21:10 | |
|
Если ограничения на сумму небольшие, то решается дп. Довольно известная задача, должна гуглится.
0
|
|
|
3 / 3 / 3
Регистрация: 26.02.2014
Сообщений: 49
|
|
| 27.03.2014, 22:37 [ТС] | |
|
Гуглилась бы уже бы нагуглили...
0
|
|
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
|||
| 28.03.2014, 01:24 | |||
|
Напоминает задачу о ранце , не знаю насколько она тут применима
2
|
|||
|
3 / 3 / 3
Регистрация: 26.02.2014
Сообщений: 49
|
|
| 28.03.2014, 01:42 [ТС] | |
|
Да "о ранце" это основной пример подобной задачи. Но мой случай имеет жесткое усложнение.
Добавлено через 3 минуты Пока что появились некие наработки (не сказать что мои, товарища) пока не известно на сколько рабочего алгоритма... * есть 2 массива чисел. нужно получить 2 определенные суммы из этих чисел, обязательно из обоих массивов. * для этого класс числа имеет свойство - к какому массиву он относится. * * алгоритм - рекурсивный перебор в ширину. то есть дерево с 1 вершиной. * * 1. берем первую сумму. создаем объекты чисел из обоих массивов. каждый объект будет представлять свой пусть вычислений. * у каждого из объектов есть список всех исходных чисел - все числа из обих массивов, кроме самого себя. * у каждого из объектов есть список использовавшихся чисел - оно само и его предки. * * 2. создаем объект. он удаляет себя из списка исходных чисел и добавляет себя в список использовавшихся. * 3. вычитаем из суммы все числа из использовавшихся, получаем разницу. для каждого объекта будет своя разница. * 4. если разница +- погрешность равна 0, то нужная последовательность чисел найдена, гоу 5. * 5. мы ее проверяем, есть ли в списке использовавшихся числа из обоих массивов. если есть - то переходим к поиску второй суммы, гоу 1. * 6. если нет - пусть так и валяется. по-хорошему надо удалять эти числа, но фиг с ними, проц мощный, справится * * 7. если разница +- погрешность не равна 0, продолжаем поиски. создаем у объекта все объекты из списка исходных, гоу 2. Добавлено через 1 минуту И тут же проблема чисел то исходных динамичное количество...
0
|
|
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
||
| 28.03.2014, 09:23 | ||
|
0
|
||
|
3 / 3 / 3
Регистрация: 26.02.2014
Сообщений: 49
|
|
| 28.03.2014, 13:01 [ТС] | |
|
Не в смысле в начале работы разное количество бывает.
0
|
|
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
|
| 29.03.2014, 01:11 | |
|
thisiswhite, пусть будет разное,для разных запусков,ничего страшного.
0
|
|
|
3 / 3 / 3
Регистрация: 26.02.2014
Сообщений: 49
|
||||||
| 31.03.2014, 15:18 [ТС] | ||||||
|
Вот такая вот пара классов получилась:
0
|
||||||
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
|
| 31.03.2014, 16:51 | |
|
thisiswhite, и как,работает?
0
|
|
|
3 / 3 / 3
Регистрация: 26.02.2014
Сообщений: 49
|
|
| 31.03.2014, 17:18 [ТС] | |
|
Отлично!
0
|
|
|
1 / 1 / 0
Регистрация: 01.02.2014
Сообщений: 13
|
|
| 31.03.2014, 22:11 | |
|
[url]
0
|
|
|
Мой лучший друг-отладчик!
|
|
| 01.04.2014, 20:52 | |
|
я думаю тут можно также применить идею Meet-in-the-middle.Идея вот в чём: все числа делятся на 2 части, и в каждой части генерируются все возможные суммы.А потом из этих сумм стараются получить сумму сумм как можно более близкую к искомому числу.Асимптотику такой подход нормально так уменьшает.
1
|
|
| 01.04.2014, 20:52 | |
|
Помогаю со студенческими работами здесь
19
Подбор значений для заданной суммы Конструкторы и деструкторы. Определить оптимальный подбор банкнот для выдачи задаваемой суммы в рублях для банкомата CRC32: Дополнить файл для получения контрольной суммы FFFFFFFF Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|