3

しょーがくせいでも分かる分数の小数展開を楽に計算する方法

77
0
$$$$

あいさつ

んちゃ!
偶には(当社比)しょーがくせいでも分かる記事を書いてみようと思って書いたものが今回の記事。
この記事では、素数$p\in\mathrm{Prim}$に対する分数$\frac{1}{p}$を小数展開したときどのような性質を持つかを調べる。
そして、最後にはあらゆる分数の小数展開をいかにして計算するか具体的に問題を解き示す。

Notation
    $\mathrm{Prim}=\{n\in\mathbb{Z}|nは素数\}$
  • 文字列$a_{1}\cdots a_{m},b_{1}\cdots b_{n}$について$a_{1}\cdots a_{m}\ast b_{1}\cdots b_{n}=a_{1}\cdots a_{m}b_{1}\cdots b_{n}$および$\ast^{N}(a_{1}\cdots a_{m})=\underbrace{\underbrace{a_{1}\cdots a_{m}}\underbrace{a_{1}\cdots a_{m}}\cdots \underbrace{a_{1}\cdots a_{m}}}_{N個}$の様な記号を定める。

分数の性質を調べる

小数展開

$x\in\mathbb{R}_{+}$に対して自然数$m\in\mathbb{N}$そして数列$ \{c_{n}\}_{n\in\mathbb{N}}\subset\{0,1,2,...,m-1\}$を適切に定め$(x)_{m}\coloneqq\sum_{n=0}^{\infty}c_{N-n}m^{N-n}$の様に書けたとき、これを基数$m$による小数展開と呼ぶ。

循環小数・周期

小数展開$0.\alpha_{1}\alpha_{2}\cdots$についてある自然数$k_{0},T\in\mathbb{N}$が存在して$\forall k\in\mathbb{N}(k_{0}\leq k):\alpha_{k+T}=\alpha_{k}$が成り立つとき循環小数という。
また$k_{0}$を循環小数の循環開始位置、$T$のうち最小のものを循環小数の周期という。

素数$p\in\mathrm{Prim}$について$\frac{1}{p}$を$p$と互いに素な自然数$m\in\mathbb{N}$を用いて基数$m$による小数展開するとこれは循環小数となる。
さらに循環開始点は$k_{0}=1$

まずは小数展開の意味から考える。もし$(\frac{1}{p})_{m}=\sum_{n=1}^{\infty}\frac{\alpha_{n}}{m^{n}}\quad(\alpha_{k}\in\{0,1,2,...,m-1\})$が成立したとすると
$\alpha_{1}$は両辺$m$をかけ$\frac{m}{p}=\alpha_{1}+\sum_{n=2}^{\infty}\frac{\alpha_{2}}{m^{n}}$が成り立つので$\alpha_{1}$は$m$を$p$で割った商$q_{1}$と等しく、余り$r_{1}$は$\frac{r_{1}}{p}=\sum_{n=2}^{\infty}\frac{\alpha_{n}}{m^{n}}$。
先と同様に$m$を両辺にかける。$\frac{mr_{1}}{p}=\alpha_{2}+\sum_{n=3}^{\infty}\frac{\alpha_{n}}{m^{n}}$が成り立つので$\alpha_{2}$は$mr_{1}$を$p$で割った商$q_{2}$と等しく、余り$r_{2}$は$\frac{r_{2}}{p}=\sum_{n=3}^{\infty}\frac{p^{3}}{m^{3}}$。
以下同様。
次にこの操作を厳密に書く。すると次の様に書ける。
\begin{eqnarray} \left\{ \begin{array}{l} m=p\alpha_{1}+r_{1}\quad(0\lt r_{1}\lt p)\\ mr_{1}=p\alpha_{2}+r_{2}\quad(0\lt r_{2}\lt p)\\ \cdots\\ mr_{n}=p\alpha_{n}+r_{n}\quad(0\lt r_{n}\lt p)\\ \cdots \end{array} \right. \end{eqnarray}
ここで、$r_{n}\neq 0\quad(n=1,2,...)$である事は次の事から明らか。
まず$n=1$の時$r_{1}=0$であるとすると$m,p$が互いに素である事に反する。$r_{1}\neq 0$が得られる。
次に$1,2,...,n$まで$r_{k}=0\quad(k=1,2,...,n)$が成立したとする。この時$mr_{n}$は$p$と互いに素である事を示す。
もし$mr_{n}$が$p$の倍数であるとすると$m,r_{n}$のいずれかは$p$で割る事が出来ないといけないが$m,r_{n}$も互いに素なのでその様な事は起きない。
ゆえに$r_{n}\neq 0\quad(n=1,2,...)$。
さらに$r_{1},r_{2},....,r_{p-1},r_{p},r_{p+1}$はいずれも$p$以下なので鳩ノ巣原理より少なくとも一つ$r_{i}=r_{j}\quad(i\neq j)$が存在するので$(\frac{1}{p})_{m}$は循環小数となる事が示せた。
さらに、
\begin{eqnarray} m^{p}&=&(1+1+\cdots+1)^{p}\\ &=&m+\sum\frac{p!}{\alpha!\beta!\cdots}\\ &\equiv&m\quad(\mathrm{mod}\ p) \end{eqnarray}
であり$m(m^{p-1}-1)\equiv 0\quad (\mathrm{mod}\ p)$かつ$m,p$は互いに素なので$m^{p-1}-1\equiv 0\quad(\mathrm{mod}\ p)\therefore m^{p-1}\equiv 1\quad(\mathrm{mod}\ p)$すなわち$1$は必ず$p-1$回以下の操作を繰り返す事で$1$に戻るので循環の開始点は$k_{0}=1$。

素数$p\in\mathrm{Prim}$について$\frac{1}{p}$を$p$と互いに素な自然数$m\in\mathbb{N}$を用いて基数$m$による小数展開を$(\frac{1}{p})_{m}=0.\alpha_{1}\alpha_{2}\cdots$とする。この時、周期$T$が与えられているとき次の様な計算を行うことが出来る。
\begin{equation} \forall q\in\{1,2,...,p-1\}:(\frac{q}{p})_{m}=0.\ast (\ast^{\infty}q\times \alpha_{1}\alpha_{k_{1}}\cdots \alpha_{T-1}) \end{equation}

周期$T$が不変である事を言えばいい。
\begin{eqnarray} \left\{ \begin{array}{l} m=p\alpha_{1}+r_{1}\quad(0\lt r_{1}\lt p)\\ mr_{1}=p\alpha_{2}+r_{2}\quad(0\lt r_{2}\lt p)\\ \cdots\\ mr_{T-2}=p\alpha_{T-1}+r_{T-1}\quad(0\lt r_{T}\lt p)\\ mr_{T-1}=p\alpha_{T}+1\quad(0\lt r_{1}\lt p) \end{array} \right. \end{eqnarray}
の各々に$q$をかける。
すると
\begin{eqnarray} \left\{ \begin{array}{l} qm=pq\alpha_{1}+qr_{1}\quad(0\lt r_{1}\lt p)\\ qmr_{1}=pq\alpha_{2}+qr_{2}\quad(0\lt r_{2}\lt p)\\ \cdots\\ qmr_{T-2}=pq\alpha_{T-1}+qr_{T-1}\quad(0\lt r_{T}\lt p)\\ mr_{T-1}=pq\alpha_{T}+q\quad(0\lt r_{1}\lt p) \end{array} \right. \end{eqnarray}
であり、$qr_{0}(r_{0}=1),qr_{1},qr_{2},...,qr_{T-1}$は($q,1, r_{1},...,r_{T-1}$は$p$と互いに素なので)$p$と互いに素。さらに、$qr_{i}=q_{j}r_{j}\quad(i,j=0,...,T-1)$が成り立つなら$i=j$しかありえない事が分かる。
実際、$r_{0},r_{1},r_{2},...,r_{T-1}$について$0\lt |r_{i}-r_{j}|\lt p\quad(i\neq j)$であり、$r_{i}-r_{j}$は$p$に関して互いに素。ゆえに$q(r_{i}-r_{j})$も$p$に関して互いに素であるから、$qr_{i},qr_{j}$を$p$で割ったときの余りが一致しないため$qr_{i}\neq qr_{j}\quad(i\neq j)$
さらに$f(q)\coloneqq q\sum_{n=1}^{T}\alpha_{n}m^{T-n}=qf(1)\quad(q=1,2,...,p-1)$の様に定める。すると$f(q)\lt m^{T}$が成り立つ。
なぜなら、
\begin{eqnarray} (\frac{1}{p})_{m}&=&\frac{f(1)}{m^{T}}\sum_{n=0}^{\infty}m^{-nT}\\ &=&\frac{f(1)}{m^{T}-1} \end{eqnarray}
であるから
\begin{eqnarray} q(\frac{1}{p})_{m}&=&(\frac{q}{p})_{m}\\ &=&\frac{qf(1)}{m^{T}-1}\\ &=&\frac{f(q)}{m^{T}-1}\lt 1 \end{eqnarray}
次の不等式を得る。$f(q)\lt m^{T}-1\lt m^{T}$
これと$qr_{i}\neq qr_{j}\quad(i,j=0,1,2,...,T-1\land i\neq j)$まとめると周期$T$の不変性が示せた。

計算ドリル

$\frac{1}{7}$の基数$9$に関する小数展開を求め。さらに$\frac{1}{7},\frac{2}{7},...,\frac{6}{7}$の基数$9$に関する小数展開を求めよ。

[1]
\begin{eqnarray} \left\{ \begin{array}{l} 9\cdot 1=1\cdot 7+2\\ 2\cdot 9=2\cdot 7+4\\ 4\cdot 9=5\cdot 7+1 \end{array} \right. \end{eqnarray}
なので$(\frac{1}{7})_{9}=0.\ast(\ast^{\infty}125)$
[2]
\begin{eqnarray} \left\{ \begin{array}{l} (\frac{2}{7})_{9}=0.\ast (\ast^{\infty}251)\\ (\frac{3}{7})_{9}=0.\ast (\ast^{\infty}376)\\ (\frac{4}{7})_{9}=0.\ast (\ast^{\infty}512)\\ (\frac{5}{7})_{9}=0.\ast (\ast^{\infty}637)\\ (\frac{6}{7})_{9}=0.\ast (\ast^{\infty}763) \end{array} \right. \end{eqnarray}

$\frac{1}{5}$の基数$8$の小数展開を求め、さらに$\frac{1}{5},\frac{2}{5},...,\frac{4}{5}$の基数$9$に関する小数展開を求めよ。

[1]
\begin{eqnarray} \left\{ \begin{array}{l} 8=1\cdot 5+3\\ 3\cdot 8=4\cdot 5+4\\ 4\cdot 8=6\cdot 5+2\\ 2\cdot 8=3\cdot 5+1 \end{array} \right. \end{eqnarray}
なので$(\frac{1}{5})_{8}=0.\ast(\ast^{\infty}1463)$。
[2]
\begin{eqnarray} \left\{ \begin{array}{l} (\frac{2}{5})_{8}=0.\ast(\ast^{\infty}3146)\\ (\frac{3}{5})_{8}=0.\ast(\ast^{\infty}4631)\\ (\frac{4}{5})_{8}=0.\ast(\ast^{\infty}6314) \end{array} \right. \end{eqnarray}

合成数が分母にある場合

素数$p\in\mathrm{Prim}$について
\begin{equation} (\frac{1}{p})_{m}=\ast(\ast^{\infty}\alpha_{1}\alpha_{2}\cdots\alpha_{T}) \end{equation}
と書けている時、$\alpha_{1}\cdots \alpha_{T}$を一つの塊として左からカウントし、$n$番目のものを$n$循環ブロックという。

$p,q\in\mathrm{Prim}$であり、$(\frac{1}{p})_{m}=0.\ast(\ast^{\infty}\alpha_{1}\alpha_{2}\cdots \alpha_{T})$である事が分かっているとする。
この場合はある自然数$N\in\mathbb{N}(N\leq q)$が存在して次の計算を行う事で$(\frac{1}{pq})_{m}$を求めることが出来る。
\begin{eqnarray} \left\{ \begin{array}{l} \sum_{n=1}^{T}\alpha_{n}m^{T-n}=Q_{1}q+r_{1}\quad(0\leq r_{1}\lt q)\\ r_{1}m^{T}+\sum_{n=1}^{T}\alpha_{n}m^{T-n}=Q_{2}q+r_{2}\quad(0\leq r_{2}\lt q)\\ \cdots\\ r_{N}m^{T}+\sum_{n=1}^{T}\alpha_{n}m^{T-n}=Q_{N}q+r_{1}\quad \end{array} \right. \end{eqnarray}
この時、$(Q_{i})_{m}$の桁数を$\mathrm{Dig}_{m}(Q_{i})$の様に表すと$T-\mathrm{Dig}_{m}(Q_{i})$個の$0$を並べて次の様に表せる。
\begin{equation} \frac{1}{pq}=0.\ast((\ast^{T-\mathrm{Dig}(Q_{1})}0)\ast(Q_{1})_{m}\ast\cdots\ast (\ast^{T-\mathrm{Dig}(Q_{N})}0)\ast(Q_{N})_{m}) \end{equation}
あるいは
\begin{equation} r_{N}m^{T}+\sum_{n=1}^{T}\alpha_{n}m^{T-n}=Q_{N}q \end{equation}
を満たす場合も同様の式で書ける。

割り算の基本に立ち返るだけ
\begin{eqnarray} (\frac{1}{p})_{m}&=&0.\ast(\ast^{\infty}\alpha_{1}\alpha_{2}\cdots \alpha_{T})\\ &=&\sum_{n=1}^{\infty}\frac{\alpha_{1}m^{T-1}+\cdots \alpha_{T}}{m^{nT}} \end{eqnarray}
であるので、両辺$\frac{m^{T}}{q}$をかけると
\begin{equation} (\frac{m^{T}}{pq})_{m}=\frac{\alpha_{1}m^{T-1}+\cdots \alpha_{T}}{q}+\sum_{n=1}^{\infty}\frac{\alpha_{1}m^{T-1}+\cdots \alpha_{T}}{qm^{nT}} \end{equation}
の様に書けるので$1$循環ブロックを$q$で割った商と余りを$Q_{1},r_{1}$とすれば
\begin{equation} (\frac{m^{T}}{pq})_{m}=Q_{1}+\frac{r_{1}m^{T}+\alpha_{1}m^{T-1}+\cdots \alpha_{T}}{qm^{T}}+\sum_{n=2}^{\infty}\frac{\alpha_{1}m^{T-1}+\cdots \alpha_{T}}{qm^{nT}} \end{equation}
の様に書ける。
後はこの操作を繰り返せばよい。
また$0\leq r_{1},r_{2},...,r_{q+1}\lt q$であるから、途中で$0$になるか、そうでないなら鳩ノ巣原理より、必ず$r_{i}=r_{j}\quad(i\neq j)$が存在するので有限回の操作で繰り返す。
どちらであっても有限回の操作で終わり、後は繰り返すだけなので証明完了。

追加ドリル

$\frac{1}{77}$の$10$を基数とした小数展開を求めよ。

[1]
\begin{eqnarray} \left\{ \begin{array}{l} 10=1\cdot 7+3\\ 30=4\cdot 7+2\\ 20=2\cdot 7+6\\ 60=8\cdot 7+4\\ 40=5\cdot 7+5\\ 50=7\cdot 7+1 \end{array} \right. \end{eqnarray}
なので
\begin{equation} \frac{1}{7}=0.\ast(\ast^{\infty}142857) \end{equation}
[2]
\begin{eqnarray} 142857=12987\cdot 11+0 \end{eqnarray}
$6-\mathrm{Dig}(12987)=1$なので
\begin{equation} \frac{1}{77}=0.\ast(\ast^{\infty}012987) \end{equation}

$\frac{1}{91}$の$10$を基数とした小数展開を求めよ。

[1]$\frac{1}{7}=0.(\ast^{\infty}142857)$
[2]
\begin{eqnarray} \left\{ \begin{array}{l} 142857=10989\cdot 13+0 \end{array} \right. \end{eqnarray}
であり$6-\mathrm{Dig}(10989)=1$なので
\begin{equation} \frac{1}{91}=\ast(\ast^{\infty}010989) \end{equation}

$\frac{1}{49}$の$10$を基数とした小数展開を求めよ。

[1]$\frac{1}{7}=0.\ast(\ast^{\infty}142857)$
[2]
\begin{eqnarray} \left\{ \begin{array}{l} 142857=20408\cdot 7+1\\ 1142857=163265\cdot 7+2\\ 2142857=306122\cdot 7+3\\ 3142857=448979\cdot 7+4\\ 4142857=591836\cdot 7+5\\ 5142857=734683\cdot 7+6\\ 6142857=877551\cdot 7+0 \end{array} \right. \end{eqnarray}
なので$\frac{1}{49}=0.\ast(\ast^{\infty}020408163265306122448979591836734683877551)$

任意の$m$を基数にする循環小数$s\coloneqq0.\alpha_{1}\cdots\alpha_{k_{0}-1}\ast(\ast^{\infty} \alpha_{k_{0}}\cdots\alpha_{k_{0}+T-1})\lt 1$
について自然数$q\in \mathbb{N}$をかけたとき$qs\lt 1$が成り立つなら任意の$n$循環ブロックの値は次の様に書ける。
\begin{equation} \exists C\in\mathbb{N}_{0}\ s.t. \ q\sum_{n=1}^{T}\alpha_{k_{0}+n-1}m^{T-n}+C \end{equation}

[1]各循環ブロックについて
\begin{equation} q\sum_{n=1}^{T}\alpha_{k_{0}+n-1}m^{T-n}\lt m^{T} \end{equation}
である場合は$C=0$とするだけ。
[2]仮に
\begin{equation} q\sum_{n=1}^{T}\alpha_{k_{0}+n-1}m^{T-n}\geq m^{T} \end{equation}
であるとすると繰り上がりを考慮しないといけない。
$n$循環ブロックによる繰り上がりを$C_{n}$とするとこれは定数でないといけない。
まず、$C_{n},C_{n-1},...,C_{1}$はその与え方から単調非減少な自然数列である事が分かる。
もし一か所でも$C_{n_{0}-1}\geq C_{n_{0}}+1$を満たす循環ブロックが存在したとする。
すると循環ブロックの対称性($(k-1)n_{0}$循環ブロックから見たら相対的な位置が$n_{0}$だ)から$C_{kn_{0}-1}\geq C_{kn_{0}}+1$が成立する。
これは無限に繰り返す事が出来るので$C_{n_{0}}$は発散する。
ゆえに$\cdots=C_{n}=C_{n-1}=\cdots=C_{1}=C=const.$でないといけない。
以上の事から$qs$の$n$循環ブロックの値が次の様に計算できる事が示された。
\begin{equation} \exists C\in\mathbb{N}_{0}\ s.t. \ q\sum_{n=1}^{T}\alpha_{k_{0}+n-1}m^{T-n}+C \end{equation}

$\frac{2}{49}$を求めよ。

\begin{array}{r} 020408163265306122448979591836734683877551 \\ \times \phantom{0}2 \\ \hline 040816326530612244897959182673469367755112 \end{array}
なので
\begin{equation} \frac{1}{49}=0.\ast(\ast^{\infty}040816326530612244897959182673469367755112) \end{equation}

投稿日:8日前
更新日:7日前
数学の力で現場を変える アルゴリズムエンジニア募集 - Mathlog served by OptHub

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中