PASSLABO の問題【伝説の東大模試】因数分解せよ，を解く。

# 問題
$x^4 + 9x^3 + 16x^2 - x - 3$ を因数分解せよという PASSLABO さんの問題。出典は東大模試らしい。
[【伝説の東大模試】因数分解せよ（YouTube）](https://www.youtube.com/watch?v=xBjg7L3BoiI)

# 解法
おそらく二次式の積の形に分解できるはず。なので
```math
\begin{align}
&(x^2 + px + q)^2 - (rx + s)^2 \\
&= \left( x^2 + (p+r)x + q+s \right) \left(x^2 + (p-r)x + q-s\right) \tag{1}
\end{align}
```
となるように，まずは2つの平方式の差の形に持って行きたい。基本方針としては四次方程式の解法，いわゆるフェラーリの解法をなぞる。
まず $x = y - 9/4$ とおいて，三次の項を消去する。
$$
\textsf{与式} = y^4 - \frac{115}{8}y^2 + \frac{145}{8}y + \frac{861}{256} \tag{2}
$$
第1項が平方完成するように $-2 \lambda y^2 + \lambda^2$ の項を追加する。もちろん第2項以降から同じだけ差し引く。
```math
\begin{align}
\textsf{与式} &= y^4 -2 \lambda y^2 + \lambda^2  + 2 \lambda y^2 - \lambda^2 - \frac{115}{8}y^2 +  \frac{145}{8}y + \frac{861}{256} \\
&= (y^2 - \lambda)^2 - \left(\frac{115}{8} y^2 - 2 \lambda y^2 - \frac{145}{8}y + \lambda^2 - \frac{861}{256}\right) \tag{3}
\end{align}
```
第2項が平方完成するための条件は，第2項がゼロとなる $y$ の二次方程式を考えたときの判別式 $D = 0$ になることであるから，
$$
D = \left(\frac{145}{8}\right)^2 - 4 \left(\frac{115}{8} - 2 \lambda \right) \left(\lambda^2 - \frac{861}{256}\right) = 0 \tag{4}
$$
となる。これより $\lambda$ に関する三次方程式を解けばいい。
$$
\lambda^3 - \frac{115}{16} \lambda^2 - \frac{861}{256} \lambda + \frac{267215}{4096} = 0 \tag{5}
$$
とはいえ，ガチでカルダノの解法を用いて解くのはツラいので，何とか因数分解できないか考えてみる。とりあえず $\lambda = m / 16$ とおくと
$$
m^3 - 115 m^2 - 861 m + 267215 = 0 \tag{6}
$$
となり，整数係数だけになって随分スッキリした。ここで $267215 = 5 \cdot 13 \cdot 4111$ であることに着目すると解の予想ができ，幸運なことに $m = 5 \cdot 13 = 65$ という解を持つことが分かる。
$$
(m - 65)(m^2 -50m - 4111) = 0 \tag{7}
$$
これより $m = 65$ であり，$\lambda = 65 / 16$ である。これを $(3)$ に代入して
```math
\begin{align}
\textsf{与式} &= \left(y^2 - \frac{65}{16}\right)^2 - \left(\frac{5}{2} y - \frac{29}{8}\right)^2 \\
&= \left(y^2 + \frac{5}{2} y - \frac{123}{16}\right)\left(y^2 - \frac{5}{2} y - \frac{7}{16}\right) \tag{8}
\end{align}
```
$y = x + 9/4$ であるから
$$
\textsf{与式} = (x^2 + 7x + 3)(x^2 + 2x - 1) \tag{9}
$$
となる。良い子は決してこの解法をマネしてはいけない。

# 余談
$(7)$より，$m$ は整数解 $m = 65$ 以外に2つの実数解 $m = 25\pm 8\sqrt{74}$ を持つ。すなわち $\lambda$ も有理数解 $\lambda = 65/16$ 以外に
$$
\lambda = \frac{25}{16} \pm \frac{\sqrt{74}}{2} \tag{10}
$$
という実数解を持つ。これらの $\lambda$ を $(3)$ に代入すれば $(9)$ とは異なる形の因数分解を得られる。
```math
\begin{align}
\textsf{与式} &= \left(x^2 + \frac{9 + \sqrt{37} \mp 2 \sqrt{2}}{2}x + \frac{7 \mp \sqrt{74} + \sqrt{37} \mp 7\sqrt{2}}{2} \right) \\
&\times \left(x^2 + \frac{9 - \sqrt{37} \pm 2 \sqrt{2}}{2}x + \frac{7 \mp \sqrt{74} - \sqrt{37} \pm 7\sqrt{2}}{2} \right) \tag{11}
\end{align}
```
すなわち因数分解のやり方は（整数係数に限らなければ）合計3通りあるということになる。考えてみれば当然の話であり，そもそも実数係数まで許せば
$$
\textsf{与式} = \left(x + \frac{7 + \sqrt{37}}{2}\right) \left(x + \frac{7 - \sqrt{37}}{2}\right)  \left(x + 1 + \sqrt{2}\right) \left(x + 1 - \sqrt{2}\right) \tag{12}
$$
まで因数分解できる。2つの二次式の積となる組み合わせは3通りあり，このうち整数係数になるのが1通りということである。

# 式展開のチェック
式展開のチェックには Maxima を使った。
式(2)は以下のようになる。
```
(%i1) expand(subst(y - 9/4, x, x^4 + 9*x^3 + 16*x^2 - x - 3));
                                     2
                            4   115 y    145 y   861
(%o1)                      y  - ------ + ----- + ---
                                  8        8     256
```
式(5),(6),(7)は以下のようになる。
```
(%i1) D:(145/8)^2 - 4*(115/8 - 2*lambda)*(lambda*lambda - 861/256);
                  21025      115                    2   861
(%o1)             ----- - 4 (--- - 2 lambda) (lambda  - ---)
                   64         8                         256
(%i2) expand(D/8);
                                      2
                        3   115 lambda    861 lambda   267215
(%o2)             lambda  - ----------- - ---------- + ------
                                16           256        4096
(%i3) expand(subst(m/16,lambda,D*512));
                          3        2
(%o3)                    m  - 115 m  - 861 m + 267215
(%i4) factor(expand(subst(m/16,lambda,D*512)));
                                     2
(%o4)                     (m - 65) (m  - 50 m - 4111)
```
最後に一言だけ，Maxima を使うのなら最初から使えばいいんじゃね？と言われたらその通りである。
```
(%i1) factor(x^4 + 9*x^3 + 16*x^2 - x - 3);
                           2              2
(%o1)                    (x  + 2 x - 1) (x  + 7 x + 3)
```