Нахождение слагаемых из списка по их сумме

09.04.12

Задачи пользователя - Разное

Обработка находит все возможные варианты состава слагаемых из списка для получения суммы поиска.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
НахождениеСлагаемыхИзСпискаПоИхСумме
.epf 12,43Kb
20
20 Скачать (1 SM) Купить за 1 850 руб.

Обработка находит все возможные варианты состава слагаемых из списка для получения суммы поиска.

Необходимо заполнить левую табличную часть на форме предполагаемыми слагаемыми (возможна загрузка из Excel - первый лист, первая колонка с первой ячейки) и ввести сумму для поиска. Выбрать ограничение по количеству слагаемых в итоговом выражении. 
По окончании выполнения обработки в правом поле на форме будут отображены все варианты состава слагаемых по номеру строки в левой табличной части.
Внимание! Чем больше вариантов слагаемых в левом списке, тем дольше выполняется обработка. НО больше всего время выполнения обработки зависит от выставленного предельного количества слагаемых. К этому параметру следует относится серьезно, ибо автор не отвечает за последствия загрузки процессора и оперативной памяти вашего компьютера.

На самом деле все не так страшно. Многое зависит от целей вашего поиска. Например у вас есть список из 20 значений от 1000 до 1500, а найти вам нужно варианты состава например 6500. Понятно, что вариантов тут будет очень много. А если Вы еще зададите ограничение в 15 слагаемых (что не целесообразно - начинать лучше с 3-4), то ждать придется ооочень долго.

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

В общем... эта обработка писалась на коленке для поиска трех слагаемых... потом была расширена... если найдете способ увеличить производительность, или придумаете (найдете)  что-то проще и удобнее... рад буду услышать :) Также рад буду слышать критику в области написания кода касательно производительности обработки. Ну а если найдете ошибку - скрин в студию. Повторюсь - дело было написано на коленке за отсутствием найденных аналогов в сети.

За плюсы и минусы благодарен заранее :) 

 

*обновил 09.04.12. Увеличена скорость и уменьшена задействованная память

См. также

Разное Аудит и бухгалтерские услуги, юриспруденция Россия Абонемент ($m)

Современные NDA становятся всё жёстче, а исполнители сталкиваются с необоснованными штрафами и рисками. В статье разбираем ключевые юридические нюансы, даём рекомендации по снижению рисков при подписании NDA и делимся практическими советами. Как грамотно ограничить штрафы, уточнить понятие конфиденциальной информации, сократить срок действия NDA и зафиксировать свою позицию в контракте? Читайте в нашем материале.

1 стартмани

17.02.2025    512    Adapta    1    

4

Разное Платформа 1С v8.3 1С:Комплексная автоматизация 2.х Абонемент ($m)

Универсальное расширение для работы с колесом баланса в любой конфигурации 1С с сохранением истории предыдущих оценок.

1 стартмани

04.02.2025    532    1    itsys    0    

3

Разное Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Продукт для ведения родового дерева, поможет решить задачи по систематизации и визуализации информации по родословной.

10 стартмани

12.09.2024    2102    6    Kassper    9    

32

Разное Платформа 1С v8.3 1C:Бухгалтерия Россия Абонемент ($m)

Тренажер Азбуки Морзе на 1С без внешних компонент.

1 стартмани

17.04.2024    1473    2    Irwin    2    

13

Разное Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

В публикации представлена простая внешняя обработка, позволяющая перенести файлы с фото в нужные папки.

1 стартмани

21.03.2024    958    1    vikhrov53    0    

3

Разное Платформа 1С v8.3 1C:Бухгалтерия Энергетика и ЖКХ Россия Бухгалтерский учет Управленческий учет Абонемент ($m)

Позволяет в одном документе собрать записи по всем коммунальным платежам и показаниям бытовых приборов. Вы не пропустите и не забудете свой коммунальный платеж. Будете точно знать ежемесячную сумму коммуналки по всем объектам собственности. Расширение предназначено для самой популярной конфигурации 1С:Бухгалтерия 8, ред. 3. Объекты расширения не имеют заимствования конфигурации. Его легко встроить в другие типовые конфигурации 1С.

1 стартмани

30.01.2024    1198    4    kwn2000    2    

6

Разное Пользователь Платформа 1С v8.3 Туризм и путешествия Россия Абонемент ($m)

Составление комплекта вещей в поездку, поход, для работы и т.п. Конфигурация разработана для платформы 1С:Предприятие 8.3 (конкретно учебная версия 8.3.13.1644, потому что более новые утомили меня своими сюрпризами).

1 стартмани

19.01.2024    7308    6    AnatolPopov    33    

39

Linux Разное Программист Пользователь Платформа 1С v8.3 Абонемент ($m)

Пример обработки для определения длительности аудиофайла в среде Linux.

1 стартмани

12.01.2024    996    0    ErAK    3    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. arjuna 08.04.12 09:05 Сейчас в теме
Еще не пробовал, но очень заинтересовался. Такого типа обработок не видел. Может не все понимают для чего можно использовать. Мне конкретно может пригодится для поиска расхождений в итоговых суммах оборотно сальдовых ведомостей и т.п. где сумма расхождений состоит из нескольких слагаемых.
2. vsinyavkin 9 08.04.12 11:40 Сейчас в теме
Вы все правильно поняли. Только о сложностях в виде времени выполнения, которое напрямую зависит от количества вариантов слагаемых и их предельного количества не забывайте.
И еще одно уточнение: код в обработке написан в читабельном виде. Но если его частично отредактировать согласно рекомендациям из этой статьи http://infostart.ru/public/71130/#Pro_cikly_v_odnu_stroku (ее автору огромное спасибо), то производительность увеличивается довольно прилично.
Оставьте свое сообщение