Re: [забыл математику] Оптимизация алгоритма
От: xma  
Дата: 13.09.22 18:29
Оценка:
Здравствуйте, Real 3L0, Вы писали:

R3>Нужно ускорить место:

R3>
R3>        decimal mediumPrice2 = 0;

R3>        do
R3>        {
R3>            mediumPrice2 += overwriteMinStep.Value;
R3>        } while (mediumPrice2 < marketBuyPrice);
R3>

R3>чтобы не с нуля перебором занимался.

редкостное говнокодище конечно ..

учись у "бога программирования",

  небольшой факапчик в "устном счёте"
decimal mediumPrice2 = overwriteMinStep.Value; 
var size = marketBuyPrice - mediumPrice2; 

if (size > 0 && overwriteMinStep.Value > 0)
     mediumPrice2 += overwriteMinStep.Value * decimal.Ceiling (size / overwriteMinStep.Value);


(вроде верно)


верный алгоритм тут, (на этот раз точно)
https://rsdn.org/forum/dotnet/8361668?tree=tree
Автор: xma
Дата: 15.09.22


в твоём же коде вообще, если overwriteMinStep.Value <= 0, то твой код уйдёт в бесконечный цикл (если в первый раз сработает условие while) ..
Отредактировано 15.09.2022 15:05 xma . Предыдущая версия . Еще …
Отредактировано 15.09.2022 14:36 xma . Предыдущая версия .
Отредактировано 15.09.2022 13:13 xma . Предыдущая версия .
Отредактировано 15.09.2022 11:52 xma . Предыдущая версия .
Отредактировано 15.09.2022 11:51 xma . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.