2011-02-21

数理科学II(第25回)

今日は、まず、前回の続きで、多変数多項式のもう一つの表現方法として「分散表現」を紹介しました。

それから、1変数多項式の四則演算の実装ということで、まず加法の説明から入りました。末尾再帰でアルゴリズムを書いた場合、通常の多項式の加減算を用いて書くと、多項式の加減算がやたらと増えるのではないかという指摘がありましたが、これをScheme (LISP) で実装すると、必要な多項式の加減算は car や cdr で表すことができ、効率はそれほど損なわれないという説明をしました。

あと、今回の授業で用いた1変数多項式の正準表現では、係数を降べき順に並べているのに対し、加法の算法の中では、昇べきの順で係数の加算を行うため、末尾再帰の関数に多項式を渡す際に、いちいち reverse で係数のリストを逆向きにするのが非効率的ではないか、という指摘がありました。たしかにこれはもっともな意見で、正準表現の係数の並べ方も昇べき順にするのが、より理にかなっているかもしれません。これについては、今回の授業を踏まえて、今後の実装の際に再検討したいと思います。

次回でこの授業は終わりです。多項式の四則演算は、この後、定数倍、減算、乗算、除算が残っていますが、どこまで行けますことやら・・・なるべくゴールに近づけるように頑張りたいと思います。

0 件のコメント: