ネギ式

適当に生きるおっさんのブログ

数学:多項式の次数

多項式の次数はその項の中で最も次数の高い項の次数とする。プログラムの場合は、配列に係数を入れて、インデックス0の所に定数項を入れ、インデックス1のところに1次の係数を入れというように係数を入れておいて、配列のサイズ-1から逆に配列の内容がゼロかどうかチェックしてゼロでないところがあったら、そこのインデックスを返す。

というやり方でいいかどうか悩むのである。

前回の問題:p(x) = 2x^2+3x+1 と置くと、係数の順番を逆にしたx^2+3x+2はどう表わされるだろうか?

回答だが、

p(x) = 2x^2+3x+1
q(x) = x^2+3x+2

とおいてx^2p(1/x)を計算すると

x^2p(1/x)= (x^2){2(1/x)^2+3(1/x)+1}=2+3x+x^2=q(x)

なのでx^2+3x+2はx^2p(1/x)と表される。1/xなんか入れていいのかという疑問もあるでしょうが、不定元は不定、つまり形がないスライムみたいなものなので、1/xなんかも入ってしまうのである。最近のスライムは強いからね。

多項式の次数に戻る。さっきみたいなことはなしで、つまりxの次数は正とすると、多項式の次数は多項式うしの足し算では増えない。かけ算では結果の次数のもとの多項式の次数の和になる。という法則があるように見える。しかし引き算では次数が減ることがある。場合によっては、引き算の結果、定数項だけが残ることもある。プログラムで扱う時に、多項式から多項式を引いたら、多項式ではなく整数になるというのは都合が悪いので、定数項だけの式も多項式ということにする。(プログラムだけの話じゃないけど)

そうすると定数項というのはx^0の係数ということで、定数項だけの多項式の次数は0ということになる。

だったらよかったのに

多項式のかけ算では結果の多項式の次数はもとの次数の和になるということだが、定数項だけの多項式でしかも定数項が0の多項式を掛けたら、結果は0になってしまうのだ。多項式でも0を掛けると0になる。そのくらい0は強い力を持っている。

というわけで、0の多項式としての次数は0ではなく、マイナス無限大にしたいのである。それで最初に悩んでいたわけだ。ところがマイナス無限大という数はない……と思ったが、javascriptでは整数と浮動小数点数の区別がないために浮動小数点数用のマイナス無限大の値が使えるではないか。

そして多項式の次数を調べれば、その多項式が0かどうか分かるのである。これは便利。javascriptを使ってよかったね。

 

ad2217.hatenablog.com