という形の多項式をという形に直して計算する方法をHornerの方法とか言います。
こうやると計算回数が若干程度おさえられる。スバらしい!!
これをschemeで書くのが課題です。
accumulate使えば良いみたい。
(define (accumulate op initial sequence) (if (null? sequence) initial (op (car sequence) (accumulate op initial (cdr sequence))))) (define (horner-eval x coefficient-sequence) (accumulate (lambda (this-coeff higher-terms) (+ (* x higher-terms) this-coeff)) 0 coefficient-sequence))
のときのの値を計算します。
gosh> (horner-eval 2 (list 1 3 0 5 0 1)) 79
合ってる!!