1の三乗根を応用した多項式の割り算 – 2003年京大 数学 第4問
2003年京大 数学 第4問 は多項式の割り算問題です。問題文は以下の通りです。
f(x)=(x^{100}+1)^{100}+(x^2+1)^{100}+1 は x^2+x+1 で割り切れるか。
京大の入試問題は相変わらず問題文が簡潔ですっきりしていて、好感度が高いです。これでさくっと解ければ言うことありませんが、早速見ていきましょう。
2003年京大 数学 第4問 の解法
1の三乗根についてのおさらい
多項式 x^2 +x +1 と言えば、1の三乗根 \omega です。
\omega = \cos \frac{2 \pi}{3} + i \sin\frac{2 \pi}{3}
と置くとき、 \omega およびその共役複素数 \bar {\omega } は2次方程式
x^2 + x + 1 = 0
の解であり、かつ \omega^2 = \bar{ \omega} です。さらに、
\omega^3 = 1
が成り立ちます。
因数定理の応用
以上、1の三乗根 \omega の性質についておさらいしたところで、問題文に戻ります。
ところが因数定理により、多項式 f(x) が x^2+x+1 で割り切れるかどうかは、 f(\omega) および f(\bar{\omega}) が0と等しいかどうかで判定できます。すなわち、もし f(\omega) = f(\bar{\omega}) = 0 ならば、因数定理により f(x) は (x-\omega)(x- \bar{\omega}) = x^2 + x +1 で割り切れます。
一方、もし f(\omega) \ne 0 ならば、 f(x) は x- \omega を因数に持たないので、これを因数にもつ x^2 + x +1 で割り切れることはありません。 f(\bar{\omega}) \ne 0 の場合も同様です。
そこで、早速判定してみます。
\begin{aligned} f(\omega) &= (\omega^{100}+1)^{100}+(\omega^2+1)^{100}+1 \\ & = (\omega^{99} \cdot \omega+1)^{100}+(-\omega)^{100}+1 \\ & = (\omega+1)^{100}+\omega^{100}+1 \\ & = (-\omega^2)^{100}+\omega^{100} +1 \\ & = \omega^{198} \cdot \omega^2 + \omega^{99} \cdot \omega+1 \\ & = \omega^2 + \omega+1 = 0 \end{aligned}
となります。また、 f(x) は実数係数多項式なので、
f(\bar{\omega}) = \overline{ f(\omega) } = 0
が成り立ちます。ゆえに、 f(x) は x^2+x+1 で割り切れます。
実数係数多項式の範囲で割り切れることの確認
以上、あっさり解けましたが、京大の問題にしては簡単すぎる気がします。何か見落としはないかと考えた時に、一点気になるのが、 f(x) が x^2+x+1 で割り切れるのは複素数係数多項式の世界であって、実数係数多項式の範囲では割り切れることを証明したことになっていないのではないか、と言う点です。
実数係数多項式と複素数係数多項式では、因数分解の結果が異なるというのは、まさに x^2 +x +1 で明らかなので、因数定理を複素数係数多項式の範囲に広げて得られた結果を、無批判に実数係数多項式にあてはめて本当に大丈夫なのか、ちょっと不安です。
そこで、無用な心配かも知れませんが、念のため確認します。 f(x) の展開形を
f(x) = \sum_{k=0}^{10000}a_kx^k
と置きます。ここに a_k は実数です。
また、 f(x) を x^2+x+1 で割った商を
g(x) = \sum_{k=0}^{9998}c_kx^k
ここに c_k は複素数です。
このとき、
\begin{aligned} f(x) =& (x^2+x+1) g(x) \\ = & \sum_{k=0}^{9998}c_k (x^{k+2} +x^{k+1} + x^k) \\ = & c_{9998}x^{10000} +(c_{9998} +c_{9997}) x^{9999} \\ & + \sum_{k=2}^{9998}(c_k +c_{k-1} + c_{k-2})x^k \\ & + (c_1+ c_0)x + c_0 \end{aligned}
なので、
\begin{aligned} a_0 = & c_0 \\ a_1 = & c_0 +c_1 \\ a_k = & c_k +c_{k-1} + c_{k-2} \\ &(2 \leqq k \leqq 9998) \\ a_{9999} =& c_{9998} + c_{9999} \\ a_{10000} =& c_{9998} \end{aligned}
であり、これから c_k が実数であることが、逐次的に示せます。
2003年京大 数学 第4問 の別解
因数定理を利用しないアプローチです。
多項式 f(x) を x^2+ x +1 で割った商を g(x) 、余りを ax +b と置きます。実数の範囲の演算なので、 g(x) は実数係数多項式であり、 a,b はともに実数です。
すると、以下の式が成り立ちます。
f(x) = (x^2+x+1) g(x) +ax+b
f(\omega) = f(\bar{\omega}) = 0 なので、以下の式が成り立ちます。
\left \{ \begin{aligned} a \omega +b &=0 \cdots(1)\\ a \bar{\omega} +b &=0 \cdots (2)\\ \end{aligned} \right .
2式を辺々足して
-a + 2b = 0
これを式(1) に代入して
2b \omega + b = 0
\omega \ne -\frac{1}{2} なので b = 0 、 したがって a =0 です。
ゆえに
f(x) = (x^2+x+1) g(x)
が成り立ち、 f(x) は(実数係数多項式の範囲で) x^2+x+1 で割り切れることが示されました。
解法のポイント
本問は因数定理を利用すると、容易に解くことが出来ます。複素数係数と実数係数で割り切り方が違う可能性が気になる場合は、因数定理を利用しないアプローチもあります。
多項式 x^2+x+1 が絡む問題では、1の三乗根の威力は絶大なので、ぜひ活用してみてください。