LoginSignup
3
0

漸化式は数直線上のアフィン変換であり、p進数だと考えやすい

Posted at
\displaylines{
a = \{1,3,7,15,\cdots\}\\
a_{n+1} = 2 \cdot a_n + 1 \quad (a_1 = 1)}

 このような漸化式があったとします。受験数学では良くみる形ですね。

 これは、以下の形で一般項を求めることができます。

a_n = 2^n - 1

 つまり、ほぼ $a_n = 2^n$ です。$2^n$ だったらわかりやすいのに、この定数項は何なのか?

アフィン変換

 ちなみに、この漸化式は数直線上のアフィン変換であると考えられます。定数項のために余剰次元を用意すると、このアフィン変換はジョルダン分解を施すことにより、以下のように整理できます。

\displaylines{
\begin{pmatrix}
a_{n+1} \\
1
\end{pmatrix}=\begin{pmatrix}
2 & 1 \\
0 & 1
\end{pmatrix}\begin{pmatrix}
a_{n} \\
1
\end{pmatrix}\\
=\begin{pmatrix}
-1 & 1 \\
1 & 0
\end{pmatrix}\begin{pmatrix}
1 & 0 \\
0 & 2
\end{pmatrix}\begin{pmatrix}
0 & 1 \\
1 & 1
\end{pmatrix}\begin{pmatrix}
a_{n} \\
1
\end{pmatrix}\\
\Longleftrightarrow\\
\begin{pmatrix}
a_n \\
1
\end{pmatrix}
=\begin{pmatrix}
-1 & 1 \\
1 & 0
\end{pmatrix}\begin{pmatrix}
1 & 0 \\
0 & 2
\end{pmatrix}^{n-1}\begin{pmatrix}
0 & 1 \\
1 & 1
\end{pmatrix}\begin{pmatrix}
a_{1} \\
1
\end{pmatrix}\\
\Longleftrightarrow\\
a_{n}=\begin{pmatrix}
-1 & 1
\end{pmatrix}\begin{pmatrix}
1 & 0 \\
0 & 2^{n-1}
\end{pmatrix}\begin{pmatrix}
1 \\
a_{1}+1
\end{pmatrix}\\
= 2^n - 1
}

2進数

 もうひとつの考え方を紹介します。$a_{n+1} = 2 \cdot a_n + 1 \quad (a_1 = 1)$ という漸化式は以下のような遷移を辿ります。

\displaylines{
a_1 = 1\\
a_2 = 2\cdot(1) + 1 = 2^1 + 1\\
a_3 = 2\cdot(2^1 + 1) + 1 = 2^2 + 2^1 + 1\\
\vdots
}

 これは、$2$ 進数で考えると以下のようになります。

\displaylines{
a_1 = (\cdots0001)_2\\
a_2 = (\cdots0011)_2\\
a_3 = (\cdots0111)_2\\
\vdots
}

 つまり、$a_n$ は、$2$ 進数において $n$ 個 $1$ を並べた数です。これに $1$ を足せば、すべての桁が繰り上がって $2^n$ になります。よって、$a_n = 2^n - 1$ です。

他の進法では

 同様に考えれば、例えば

\displaylines{
b_n = \{2,8,26,\cdots\}\\
b_{n+1} = 3 \cdot b_n + 2\quad (b_1 = 2)\\
}

 が、

\displaylines{
b_1 = (\cdots0002)_3\\
b_2 = (\cdots0022)_3\\
b_3 = (\cdots0222)_3\\
\vdots
}

となり、よって $b_n = 3^n-1$ となることも理解しやすいと思います。

一般に、次のことが言えます。

  • $p$ 進数において $p^n - 1$ は、$n$ 個の $p-1$ を並べた数になる

    一般漸化式

     ここで、次のような疑問が出てきます。

    一般漸化式 $f_{n+1} = p \cdot f_n + q$ の一般項を求められないか?

    そこで、アフィン変換を用いて力押しで一般項を求めてみます。

\displaylines{
\begin{pmatrix}
f_{n+1} \\
1
\end{pmatrix}=\begin{pmatrix}
p & q \\
0 & 1
\end{pmatrix}\begin{pmatrix}
f_{n} \\
1
\end{pmatrix}\\
=\begin{pmatrix}
-\frac{q}{p-1} & 1 \\
1 & 0
\end{pmatrix}\begin{pmatrix}
1 & 0 \\
0 & p
\end{pmatrix}\begin{pmatrix}
0 & 1 \\
1 & \frac{q}{p-1}
\end{pmatrix}\begin{pmatrix}
f_n \\
1
\end{pmatrix}\\}

 $\frac{q}{p-1}$ が煩雑なので、$\gamma$ と定義します。

\displaylines{
\begin{pmatrix}
f_{n+1} \\
1
\end{pmatrix}
=\begin{pmatrix}
-\gamma & 1\\
1 & 0
\end{pmatrix}\begin{pmatrix}
1 & 0 \\
0 & p
\end{pmatrix}\begin{pmatrix}
0 & 1 \\
1 & \gamma
\end{pmatrix}\begin{pmatrix}
f_n \\
1
\end{pmatrix}\\
\Longleftrightarrow\\
f_n= (f_1 + \gamma)\cdot p^{n-1} - \gamma \qquad (\gamma = \frac{q}{p-1})
}

 これが一般項となります。

p進数

 これを $p$ 進数として考えると、少し面白いことがわかってきます。$f_{n+1} = p \cdot f_n + q$ の遷移を考えます。

f_1 = (\cdots 0000f_1)_p

 $p$ 進数では、$p$ をかけることは左にシフトさせることなので、$f_{n+1}$ は $f_n$ を左にシフトした上で $q$ を足した数になります。

\displaylines{
f_2 = (\cdots 000f_1 q)_p\\
f_3 = (\cdots 00f_1 qq)_p\\
f_4 = (\cdots 0f_1 qqq)_p\\
\vdots
}

 つまり、$f_n = (\cdots 00f_1qq\cdots qq)_p$($q$ は $n-1$ 個連続)です。

 これは、$f_n = (\cdots 00f_100\cdots00)_p + (\cdots 000qq \cdots qq)_p$ に分けて考えられます。

左側

 $(\cdots 00f_100\cdots00)_p$ は、$f_1$ を左に $n-1$ 回シフトしたものなので、$f_1 \cdot p^{n-1}$ です。

右側

 $(\cdots 000qq\cdots qq)_p$ は、$q \times (\cdots 00011\cdots11)_p$ と考えることができます。

 では、$(\cdots 00011\cdots11)_p$ はどうやって求めるのか。

 ここで、

  • $p$ 進数において $p^n - 1$ は、$n$ 個の $p-1$ を並べた数になる

 ことを思い出すと、$(\cdots00011\cdots11)_p = \frac{1}{p-1}(p^{n-1}-1)$ です。

$p^n - 1 = (p - 1)(p^{n-1} + p^{n-2} + \cdots + p + 1)$ は因数分解の問題では頻出する形ですが、このように $p$ 進数で考えると理解しやすいかもです。

合計

 以上の議論をまとめると、

\displaylines{
f_n = f_1 \cdot p^{n-1} + q \cdot \frac{1}{p-1}(p^{n-1}-1) \\
= f_1 \cdot p^{n-1} + \gamma \cdot (p^{n-1}-1)\\
= (f_1 + \gamma) \cdot  p^{n-1} - \gamma \qquad (\gamma = \frac{q}{p-1})
}

 となり、$p$ 進数として考えても一般項を求められることがわかります。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0