Здравствуйте, NoHate, Вы писали:
NH>Может быть есть какие-то более красивые решения?
В моей модели проблемы нет.
Как я уже предлагал, каждый узел хранит пару (s,s') — текущий остаток и текущий градиент.
Мы или добавляем новый градиент (+0,+k), — корректируя все правые узлы на том же ярусе: (s,s'+k)
Или добавляем новый остаток (+q,+0), — корректируя их (s+q,s')
Ну и для древовидной структуры, чтобы спроецировать лист на линию, надо суммировать верхние ярусы. Если из прошлого поста это было неочевидно, показываю:
|
s0,k0......................|
\_____________________|__
| \
_________|___s4,k4__
/ | \
s2,k2..........| s5,k5
/ \ | \
s1,k1 s3,k3....| s6,k6
| |
====================|<====>|==============================
dt |
s = s0 + s2 + s3
k = k0 + k2 + k3
v = s + k*dt