(a1+a2+...+an)*(b1+b2+...+bm)=b1*(a1+...+an)+b2*(a1+...+an)+...+bm*(a1+...+an)
в полиноме
an=kn*x^n
, к примеру, тогда:
bm*an=kbm*kan*x^(n+m)
- это простейшая ячейка операции, так сказать.
bm*(a1+...+an)
состоит из
n таких ячеек, а их сумма будет ячейкой второго уровня. Ячеек второго уровня будет
m штук, а их сумма - ваш результат, назовем его ячейкой третьего уровня. Собственно вам надо инкрементально считать ячейку второго уровня, после чего инкрементально же ее прибавлять к ячейке третьего уровня. Тогда предел необходимой памяти будет стремиться не к
m*n+с, а к
с, где
с - константа