Алгоритм размазывания суммы ХХХХ по ТЧ документа #779295


#0 by lamme
Вот такой вот алгоритм есть. На больших ТЧ и больших суммах - разница очень хорошая получается. Например, при сумме ТЧ = 1 000 000 и сумме ХХХ = 34000. Разница после размазывания получаается в 500р. Это много. Есть другие алгоритмы ? для каждого ЭлТ из Товары цикл
#1 by lamme
ХХХ  = СуммаДопРасходов
#2 by DailyLookingOnASunse
Что, так в каждой строке цикла и считается Товары.Итог("Сумма") ? ;-)))))
#3 by lamme
djn ,kz !
#4 by lamme
вот блин! точно ...
#5 by Масянька
У меня так: Семерка.
#6 by patria0muerte
В типовых есть метод: Функция РаспределитьПропорционально(Знач ИсхСумма, МассивКоэф, Знач Точность = 2, ПроверкаНулевыхЗначений=Истина) Экспорт     УпорядоченнаяТаблица.Колонки.Добавить("ИсходныйИндекс", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,0)));
#7 by Это_mike
[:||||:]
#8 by Ёпрст
Вообще то, правильнее распределять рандомом.
#9 by Fragster
#10 by RomanYS
у такого способа есть один минус: он вылетит на базе, например, {1, -1, 1}. Хотя для допрасходов пойдет, там такого обычно не бывает.
#11 by hitodom
лучше после каждой строки уменьшать базу, тогда не будет ошибок округления
#12 by RomanYS
Если есть округление - есть и ошибки округления. А не будет - остатка, который мог образоваться из-за накопления ошибок округления. Наверное, я к терминологии придираюсь. Но это не отменяет ошибку деления на 0 из .
#13 by hitodom
а как ты по отрицательной базе собрался распределеять?
#14 by AlexTim03
Уже 100500 раз решалась эта задача. На каждом проходе уменьшаешь базу распределения и количество. Ошибок округления не будет. На i...одном известном ресурсе приводились примеры решения такой задачи. Даже есть решение через запрос.
#15 by RomanYS
распределить 100 по базе {1, -1, 1}. Ответ {100, -100, 100}, совершенно однозначный с точки зрения математики.
#16 by RomanYS
прочитай
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С