Racket Scheme. Рекурсивное деление полиномов с остатков (через списки)
Форум — Development
Привет. Решил поработать с полиномами и списками в Racket и столкнулся с задачей деления. Попробовал реализовать и пока получается не очень. Допустим, есть 2 полинома: 2 + 3х -х^3 + x^4 и 8 - 3х + 4х^2 + x^3, 1ый полином делим на 2ой. В качестве параметра функции я указываю 2 листа (это мои коэффициенты), то есть (pa/pb(list 2 3 0 -1 1)(list 8 -3 4 1 0)), а ответом должны быть листы результат полинома и остаток, ну или все в один список. Я реализовал программу деления почленно, но это не верно, так как оно делается по другому и я не могу придумать алгоритм правильного деления с рекурсией.
(define pa/pb
(lambda (pol1 pol2)
(if (null? pol1)
pol2
(if (null? pol2)
pol1
(cons (/ (car pol1) (car pol2))
(pa/pb (cdr pol1) (cdr pol2))
)
)
)
)
)