|
v7: Алгоритм подбора на сумму??? | ☑ | ||
---|---|---|---|---|
0
Gavrinev
26.07.11
✎
10:43
|
Просьба подсказать (Нужен алгоритм)...
Есть список сумм накладных, нужно подогнать реестр накладных на определенную сумму, может кто сталкивался - нужен чисто алгоритм, пока в инете прочитал про циклический перебор сумм но может есть какие другие методы, просьба поделится мнением как такое делать (т.к. делать предется 2-3 раза в месяц). |
|||
1
povar
26.07.11
✎
10:45
|
читай о рюкзаке
|
|||
2
Jstunner
26.07.11
✎
10:47
|
||||
3
Gavrinev
26.07.11
✎
10:47
|
Просьба пояснить "рюкзаке"
|
|||
4
Gavrinev
26.07.11
✎
10:49
|
Большое спасибо буду копать..
|
|||
5
Mikeware
26.07.11
✎
10:51
|
(1)(2) "не поможет..."©
|
|||
6
Gavrinev
26.07.11
✎
10:52
|
(5) да спасибо уже вижу
|
|||
7
Ёпрст
26.07.11
✎
10:53
|
тупо рандомом с граничными условиями.
|
|||
8
povar
26.07.11
✎
10:53
|
(5) как это не поможет
|
|||
9
Gavrinev
26.07.11
✎
10:56
|
(7) Да спасибо - уже пробую...
|
|||
10
Mikeware
26.07.11
✎
10:57
|
(8) топикстартеру не поможет...
у него соотношение радиусов стремится к бесконечности... |
|||
11
Jstunner
26.07.11
✎
10:59
|
вместо того, чтобы наладить учет, мастерят алгоритмы с использованием рандома..
|
|||
12
Mikeware
26.07.11
✎
11:01
|
(11) а прикольно, наверное, платежную ведомость рандомом генерить :-)
|
|||
13
Gavrinev
26.07.11
✎
11:02
|
(11)- учет налажен - на сайт госзакупок требуется подавать котировки на определенную сумму заказа клиента, не зависимо от того сколько отпустил поставщик( беспредел властей краснодарского края бесграничен)... из этого следует сие выше написанное
|
|||
14
Gavrinev
26.07.11
✎
11:05
|
(12) никаких платежных ведомостей - есть производство (многоуровневое) :
Док счет в нем несколько требований - в нем несколько изделий - изделие состоит из кучи материалов... Конфа самописная. На бухии... |
|||
15
Gavrinev
26.07.11
✎
12:03
|
Вот сделал из найденного может кто что подскажет как доработать, а то сыро работает...
Dim M() As Double, I As Long, Y As Long, X As Long Dim NS As Double, TS As Double, GS As Double Dim VV1 As Double NS = 2313.89 ' сумму надо получить 'gs накопительная для сравнения Do While GS <> NS ReDim M(10) As Double GS = 0 For I = 1 To 6 ' количество сум в выборке Y = Int(Rnd * 27) + 1 ' пока из 27 строк с суммами - y номер строки M(I) = Cells(Y, 1).Value Cells(Y, 4).Value = M(I) GS = GS + M(I) If GS = NS Then ' выводим список For X = 1 To 6 Cells(X, 2).Value = M(I) Next X Exit Sub End If VV1 = NS - 10 If GS < NS And GS > VV1 Then ' выводим список For X = 1 To 6 Cells(X, 2).Value = M(I) Next X Exit Sub End If Cells(27, 4).Value = GS If GS > NS Then For X = 1 To 26 Cells(X, 4).Value = "" Next X Exit For End If Next I Loop |
|||
16
andrewks
26.07.11
✎
14:59
|
(15) О_о это точно v7? ;-)
|
|||
17
Gavrinev
26.07.11
✎
15:11
|
(16) нет эт- обычный vba но для 1c7 можно сделать vbs, или тупо процедурой перегружать в ексель и там запускать макрос...
|
|||
18
Lepochkin
26.07.11
✎
15:15
|
(17)Средствами 1с не кодится??
|
|||
19
Михаил Козлов
26.07.11
✎
15:33
|
Если неохота морочиться с перебором, то жадным алгоритмом:
1. Упорядочить суммы по убыванию. 2. Если очередная накладная подходит (сумма вместе с ней не превышает требуемую) - ее. |
|||
20
mikecool
26.07.11
✎
15:40
|
(13) +1 сам с таким столкнулся, накладные под счет-фактуру подбираешь?
|
|||
21
cobRA
26.07.11
✎
15:40
|
Без проблем делается по (2). Только тут одна загвоздка - нужно немного подумать. Самую малость, а с этим, как всегда, проблемы :)
|
|||
22
Gavrinev
26.07.11
✎
16:04
|
Всем спасибо, но сделал через ексель, список сумм нужен только для распечатки...
|
|||
23
Злопчинский
26.07.11
✎
16:25
|
пишу снова: NS публиковал на мисте практически готовый алгоритм/ я по нему рассчитываю деление большого заказа на паллеты...
|
|||
24
Ёпрст
27.07.11
✎
13:32
|
(23) это было в 2005 году, кто ж вспомнит то ?
:) |
|||
25
Ёпрст
27.07.11
✎
13:32
|
||||
26
Злопчинский
27.07.11
✎
14:28
|
(25) спасибо тебе, добрый человек! ;-)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |