#0
by zhig75
Привет. Я сломался. Есть некое множество чисел в таблице, из которых надо оптимально выбрать значения которые в сумме дадут <= необходимую сумму. Нужен алгоритм для восьмерки. Нашел вот это , но что-то ничерта не могу понять поскольку для 7.
#1
by Михаил Козлов
Жадным алгоритмом попробуйте: упорядочить по убыванию, добавлять очередное, если возможно.
#3
by mistеr
Задача о ранце без стоимости подобна задаче о ранце со стоимостью, только... Без только, это она и есть.
#4
by Михаил Козлов
Какой еще пример нужен: там 5 строчек кода. Если на тестовых примерах будет плохо подбирать, тогда нужно будет смотреть, как улучшить (литературы по ранцу полно. На форуме есть участник NZ или NS - не помню - который с ранцем плотно возился). Вы для начала озвучьте порядок количества чисел.
#5
by zhig75
К примеру 40 различных чисел, 123, 434, 5943, 334, 4322, 4343, 4445, 4303, итд, из них надо выбрать числа которые в сумме дадут <= 24500
#11
by Ma3eIIa
Пусть задана пара (S, t), где S = {x1, x2, …, xn} представляет собой множество положительных целых чисел, а t — положительное целое число. Требуется отыскать среди подмножеств множества S, сумма которых не превосходит t, такое, у которого сумма ближе всего к t. Пусть |S| = n. Обозначим (k, w) — задачу, в которой имеется k первых чисел из S и нужно набрать сумму w. Таким образом исходная задача — это задача (n, t). Для решения задачи построим таблицу T[n, t + 1], в клетку T[i, j] которой будем записывать оптимальное решение задачи (i, j). Первый столбец заполним нулями. Первую строку заполним сначала нулями, а начиная с клетки (1, x1) — числами x1. Клетку T[i, j] (i, j > 1) будем заполнять по правилу: Если j ? xi > 0, то y := T[i ? 1, j ? xi], иначе y := 0; T[i, j] := max(T [i ? 1, j], y + xi)
#14
by Ma3eIIa
ну или вот 1 в 1. const for j := M[1] to Ves do for i := 1 to N do begin for j:= Ves downto 1 do if T[j]> Cmax then end.
#15
by Михаил Козлов
Кто бы спорил. Если не ошибаюсь (могу, в таком разе извините), это метод динамического программирования применительно к задаче о ранце. Как известно, может работать экспоненциально долго. Чтобы не разводить холивар: про ранец довольно много чего известно, вряд ли удастся изобрести что-то новое: проще найти.
#19
by samozvanec
харош уже. все хотели просто пофлеймить, а ты вариантов накидал аки профессор. ТС вообще сказал, что "алгоритм для 77 сложна, дайти на 8ку"
#20
by Ma3eIIa
это было к . вопрос по оптимизации и скорости получение результата :) Да я себе заметки тут оставил :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- БП 3.0 ошибка при закрытии месяца - Превышен максимальный расход памяти
- Добавить два документа в 1С Бухгалтерию
- Выгрузка книги покупок и книги продаж из УТ 11.1 для загрузки в Налогоплательщик
- БП 3 Пустая аналитика в способе отражения расходов
- ЗУП 2.5.98.2 Изменить расчет основного начисления "Доплата за ночные часы"
- База для директ-костинга в управленческом учете
- Ошибка программного лицензирования. Неверный формат файла программного лиценз
- интернетпочта не работает отбор
- 1С 8.3 в запросе при соединении, пустой результат !!!
- 1с: розница. обновление до проф
- драйвер атол ккм 6,18
- Подскажите конструктор SQL запросов для MS SQL.
- Префикс документов при выгрузке из УТ 10.3 в БП 3,0 через универсальный обмен
- Как изменить .epf
- СКД связь наборов данных
- Значения ОбъектXDTO вместо пустоты
- Соединение с сервером баз данных удерживается после окончания вызова сервера
- Использование Интернет почты
- Тайны платформы 8.3.7 в плане отбора
- Чтение Excel 1C 8.3