開平法:平方根の筆算

同義語:開平法square root by long division

概要

開平法:平方根の筆算(square root by long division)とは、$0$ 以上の整数 $N$ を右から 2 桁ずつ区切り、平方根の数字を上から 1 桁ずつ決める筆算である。根拠は $(10a+d)^2=100a^2+(20a+d)d$ で、「ここまでの答え $a$ を 2 倍して後ろに次の数字 $d$ をつけた数に $d$ を掛けて引く」操作は $(10a+d)^2-100a^2$ を引くことにあたる。各段で条件を満たす最大の数字は必ず $0$〜$9$ の中にあり、最後に $\lfloor\sqrt N\rfloor$ と余り $N-\lfloor\sqrt N\rfloor^2$($2\lfloor\sqrt N\rfloor$ 以下)が得られる。$(A+t)^2=A^2+(2A+t)t$ を使えば、多項式の 2 乗の平方根も同じ手順で上から 1 項ずつ求まる。

$$\newcommand{C}[0]{\mathbb{C}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

前提知識: 平方根, 分配法則, 整数の筆算の仕組み, 数学的帰納法

平方根も、割り算と同じように筆算で 1 桁ずつ求められる。この筆算を 開平法 という。手順は「2 桁ずつ区切る」「前の答えを 2 倍して、次の数字を後ろにつける」と覚えることが多いが、その理由は分配法則の式 $(10a+d)^2=100a^2+(20a+d)d$ ただ 1 つである。この記事では、開平法の各段がこの式から出てくること、各段で決める数字がいつも $0$〜$9$ に収まり、最後に $\lfloor\sqrt N\rfloor$ と余り $N-\lfloor\sqrt N\rfloor^2$ が正しく得られることを証明する。さらに、同じ手順で多項式の平方根も求められることを見る。

高校での出発点:平方根を 1 桁ずつ求める

54756 の平方根

$\sqrt{54756}$ を開平法で求める(図 1)。

  • 右から 2 桁ずつ区切る:$5\,|\,47\,|\,56$。
  • 1 段目:$2^2=4\le5<9=3^2$ なので $2$ を立てる。$5-4=1$。
  • 2 段目:残り $1$ に次の 2 桁 $47$ を下ろして $147$。立てた $2$ を 2 倍した $4$ の後ろに数字 $d$ をつけた $(40+d)$ に $d$ を掛けて、$147$ を超えない最大の $d$ を探す。$43\times3=129\le147<176=44\times4$ なので $3$ を立てる。$147-129=18$。
  • 3 段目:$18$ に $56$ を下ろして $1856$。ここまでの答え $23$ を 2 倍した $46$ の後ろに $d$ をつけた $(460+d)$ について、$464\times4=1856\le1856$、$465\times5=2325>1856$ なので $4$ を立てる。$1856-1856=0$。
    答えは $234$、余りは $0$ で、$\sqrt{54756}=234$ である。実際 $234^2=54756$ である。

54756 の開平法。左の列の 2, 43, 464 は「ここまでの答えの 2 倍の後ろに次の数字をつけた数」 54756 の開平法。左の列の 2, 43, 464 は「ここまでの答えの 2 倍の後ろに次の数字をつけた数」

2 の平方根を小数第 4 位まで

$\sqrt2$ を求める。$2$ の後ろに小数点以下の $00$ を必要なだけつけ、$2\,|\,00\,|\,00\,|\,00\,|\,00$ と区切る。

  • $1^2=1\le2<4$ なので $1$。残り $1$。
  • $100$:$(20+d)d\le100$ となる最大の $d$ を探す。$100\mathbin{÷}20=5$ から見積もると $25\times5=125>100$ で大きすぎる。$24\times4=96\le100$ なので $4$。残り $4$。
  • $400$:$(280+d)d\le400$。$281\times1=281\le400<564=282\times2$ なので $1$。残り $119$。
  • $11900$:$(2820+d)d\le11900$。$2824\times4=11296\le11900<14125=2825\times5$ なので $4$。残り $604$。
  • $60400$:$(28280+d)d\le60400$。$28282\times2=56564\le60400<84849=28283\times3$ なので $2$。残り $3836$。
    よって $\sqrt2=1.4142\cdots$ である。$14142^2=199996164$ で、$200000000-199996164=3836$ が最後の余りと一致する。

手順は機械的だが、次の問いに答えないと、なぜ正しいかは分からない。

  1. なぜ 2 桁ずつ区切るのか。「2 倍して後ろに数字をつける」のはなぜか。→ lem-srl-identity
  2. 各段で立てる数字は、なぜいつも $0$〜$9$ の 1 桁に収まるのか。→ thm-srl-main
  3. 最後に得る答えと余りは何か。→ thm-srl-main、lem-srl-remainder
  4. 同じ手順で多項式の平方根も求められるか。→ prop-srl-poly
    開平法の操作数学の言葉
    2 桁ずつ区切る$100=10^2$ の位(100 進法)で見る
    答えを 2 倍して後ろに $d$ をつける$20a+d$
    $(20a+d)\times d$ を引く$(10a+d)^2-100a^2$ を引く
    各段の答え$\lfloor\sqrt{N_j}\rfloor$(上の区切りだけでできた数の平方根の整数部分)
    最後の残り$N-\lfloor\sqrt N\rfloor^2$

開平法を支える式

開平法の式

どんな数 $a,d$ についても
$$ (10a+d)^2=100a^2+(20a+d)\,d $$
が成り立つ。

分配法則で展開する

方針:左辺を分配法則で展開し、$d$ を含む項をまとめる。
段 1。分配法則により
$$ (10a+d)^2=(10a+d)(10a+d)=100a^2+10ad+10ad+d^2=100a^2+20ad+d^2 $$
である。
段 2。$20ad+d^2$ から分配法則で $d$ をくくり出すと $(20a+d)d$ になる。よって $(10a+d)^2=100a^2+(20a+d)d$ である。$\square$

この式は図形で見ると分かりやすい(図 2)。1 辺 $10a+d$ の正方形は、1 辺 $10a$ の正方形と、残りの L 字の部分に分かれる。L 字の部分は、縦横 $10a\times d$ の長方形 2 つと 1 辺 $d$ の正方形からなり、面積は $2\cdot10a\cdot d+d^2=(20a+d)d$ である。開平法の「2 倍して後ろに $d$ をつけた数に $d$ を掛ける」は、この L 字の面積を計算している。
(10a+d)² は、1 辺 10a の正方形(面積 100a²)と L 字の部分(面積 (20a+d)d)に分かれる。a=2, d=3 の場合 (10a+d)² は、1 辺 10a の正方形(面積 100a²)と L 字の部分(面積 (20a+d)d)に分かれる。a=2, d=3 の場合

開平法の式を数で確かめる
  • $a=2$、$d=3$:$23^2=529$、右辺は $100\cdot4+43\cdot3=400+129=529$。
  • $a=23$、$d=4$:$234^2=100\cdot23^2+(460+4)\cdot4=52900+1856=54756$。ex-srl-start の 3 段目で引いた $1856$ は、この L 字の面積である。

開平法で求めるのは、平方根の整数部分である。

平方根の整数部分と余り

$0$ 以上の整数 $N$ について、$a^2\le N$ を満たす最大の整数 $a\ge0$ を $\lfloor\sqrt N\rfloor$ と書き、$\sqrt N$ の整数部分 という。$N-\lfloor\sqrt N\rfloor^2$ を 余り という。$N$ が平方数(整数の 2 乗)であることは、余りが $0$ であることと同じである。

平方根の整数部分を求める
  • $N=1000$:$31^2=961\le1000<1024=32^2$ なので $\lfloor\sqrt{1000}\rfloor=31$、余りは $1000-961=39$。
  • $N=54756$:$234^2=54756$ なので $\lfloor\sqrt{54756}\rfloor=234$、余りは $0$。
  • $N=2$:$1^2\le2<2^2$ なので $\lfloor\sqrt2\rfloor=1$、余りは $1$。
    3 つの余り $39,0,1$ を $2\lfloor\sqrt N\rfloor$($62,468,2$)と比べると、どれも $2\lfloor\sqrt N\rfloor$ 以下である。これが次の補題の内容である。
余りの大きさ

$a=\lfloor\sqrt N\rfloor$ とすると、$0\le N-a^2\le2a$ である。

$a+1$ の 2 乗と比べる

方針:$a$ が最大であることから $N<(a+1)^2$ を出し、展開する。
段 1。定義から $a^2\le N$ なので $N-a^2\ge0$ である。
段 2。$a+1$ は $a$ より大きいので、$a$ の最大性から $(a+1)^2\le N$ ではない。つまり $N<(a+1)^2=a^2+2a+1$ である。
段 3。段 2 から $N-a^2<2a+1$ である。両辺は整数なので $N-a^2\le2a$ である。$\square$

開平法の手順と正しさ

開平法の手順を式で書く。右から 2 桁ずつ区切ることは、$N$ を 100 進法で表すことである。

開平法の手順

$0$ 以上の整数 $N$ を
$$ N=n_m\cdot100^m+n_{m-1}\cdot100^{m-1}+\dots+n_1\cdot100+n_0\qquad(0\le n_j\le99) $$
と書く($n_j$ が右から $j$ 番目の 2 桁の区切り。一番右を $0$ 番目とする)。上の区切りから $n_j$ までを使ってできる数を
$$ N_j=n_m\cdot100^{m-j}+\dots+n_{j+1}\cdot100+n_j\qquad(j=m,\dots,0),\qquad N_{m+1}=0 $$
とおく。$N_m=n_m$、$N_0=N$ であり、分配法則により $N_j=100\,N_{j+1}+n_j$ である(1 つ下の区切りを下ろすことは、$100$ 倍して足すことである)。
$a_{m+1}=0$、$r_{m+1}=0$ とし、$j=m,m-1,\dots,0$ の順に次を行う。

  1. 次の区切りを下ろす:$c_j=100\,r_{j+1}+n_j$。
  2. $0\le d\le9$ のうち、$(20a_{j+1}+d)\,d\le c_j$ を満たす最大の $d$ を $d_j$ とする($d=0$ はいつも満たすので、$d_j$ は必ずある)。
  3. 答えと残りを更新する:$a_j=10\,a_{j+1}+d_j$、$r_j=c_j-(20a_{j+1}+d_j)\,d_j$。
    $a_0$ を開平法の答え、$r_0$ を余りという。$d_m,d_{m-1},\dots,d_0$ が、上の位から立てていく数字である。
区切りの数 $N_j$
  • $N=54756$:$n_2=5$、$n_1=47$、$n_0=56$ で、$N_2=5$、$N_1=547$、$N_0=54756$ である。$N_1=100\cdot5+47$、$N_0=100\cdot547+56$ である。
  • $N=1000$:$n_1=10$、$n_0=0$ で、$N_1=10$、$N_0=1000=100\cdot10+0$ である。
開平法の正しさ

def-srl-algo の手順で、すべての $j=m+1,m,\dots,0$ について
$$ a_j=\lfloor\sqrt{N_j}\rfloor,\qquad r_j=N_j-a_j^2 $$
が成り立つ。とくに $a_0=\lfloor\sqrt N\rfloor$、$r_0=N-\lfloor\sqrt N\rfloor^2$ であり、$0\le r_0\le2a_0$ である。また各段で、$(10a_{j+1}+d)^2\le N_j$ を満たす $d$ のうち最大のものは $0$〜$9$ の中にある(2 の「$d\le9$」という制限で、答えを取りこぼすことはない)。

下ろした数を $N_j$ で書き、$j$ について帰納法

方針:「$a_{j+1}=\lfloor\sqrt{N_{j+1}}\rfloor$、$r_{j+1}=N_{j+1}-a_{j+1}^2$」を仮定して、次の段でも同じ式が成り立つことを示す。鍵は lem-srl-identity で、手順 2 の条件を $(10a+d)^2\le N_j$ に言い換えることである。
段 0(出発点)。$j=m+1$ では $N_{m+1}=0$、$a_{m+1}=0=\lfloor\sqrt0\rfloor$、$r_{m+1}=0=0-0^2$ なので成り立つ。
以下、$j+1$ で成り立つと仮定し、$a=a_{j+1}$ とおく。仮定から $r_{j+1}=N_{j+1}-a^2$ である。
段 1(下ろした数)。手順 1 と仮定、$N_j=100N_{j+1}+n_j$ から
$$ c_j=100\,r_{j+1}+n_j=100(N_{j+1}-a^2)+n_j=(100N_{j+1}+n_j)-100a^2=N_j-100a^2 $$
である。
段 2(条件の言い換え)。$0\le d\le9$ について、lem-srl-identity より $(20a+d)d=(10a+d)^2-100a^2$ なので、
$$ (20a+d)\,d\le c_j\iff(10a+d)^2-100a^2\le N_j-100a^2\iff(10a+d)^2\le N_j $$
である。つまり手順 2 の $d_j$ は、「$(10a+d)^2\le N_j$ を満たす $0\le d\le9$ のうち最大のもの」である。
段 3(答えは $10a$ と $10a+9$ の間)。$a=\lfloor\sqrt{N_{j+1}}\rfloor$ なので $a^2\le N_{j+1}$ で、lem-srl-remainder の段 2 と同じく $N_{j+1}<(a+1)^2$、整数なので $N_{j+1}\le(a+1)^2-1$ である。よって
$$ (10a)^2=100a^2\le100N_{j+1}\le100N_{j+1}+n_j=N_j $$
であり、$n_j\le99$ から
$$ N_j=100N_{j+1}+n_j\le100\bigl((a+1)^2-1\bigr)+99=100(a+1)^2-1<(10a+10)^2 $$
である。$s=\lfloor\sqrt{N_j}\rfloor$ とおくと、$(10a)^2\le N_j$ から $s\ge10a$、$N_j<(10a+10)^2$ から $s<10a+10$、つまり $s\le10a+9$ である。
段 4(立てる数字)。$e=s-10a$ とおくと、段 3 より $0\le e\le9$ で、$(10a+e)^2=s^2\le N_j$ である。一方 $e< d\le9$ なら $10a+d\ge s+1$ なので $(10a+d)^2\ge(s+1)^2>N_j$ である($s$ の最大性)。よって段 2 の条件を満たす最大の $d$ は $e$ であり、$d_j=e$、$a_j=10a+d_j=s=\lfloor\sqrt{N_j}\rfloor$ である。これで「最大の $d$ が $0$〜$9$ の中にある」ことも示された。
段 5(残り)。手順 3、段 1、lem-srl-identity から
$$ r_j=c_j-(20a+d_j)d_j=(N_j-100a^2)-\bigl((10a+d_j)^2-100a^2\bigr)=N_j-a_j^2 $$
である。
段 6(まとめ)。段 0 から始めて段 1〜5 をくり返すと($j$ についての 数学的帰納法。数学的帰納法と整列性)、すべての $j$ で $a_j=\lfloor\sqrt{N_j}\rfloor$、$r_j=N_j-a_j^2$ が成り立つ。$j=0$ では $N_0=N$ なので $a_0=\lfloor\sqrt N\rfloor$、$r_0=N-a_0^2$ であり、lem-srl-remainder により $0\le r_0\le2a_0$ である。$\square$

定理の各段を確かめる
  • $N=54756$(ex-srl-start):各段の答えと残りは $(a_2,r_2)=(2,1)$、$(a_1,r_1)=(23,18)$、$(a_0,r_0)=(234,0)$ である。定理のとおり、$\lfloor\sqrt{N_2}\rfloor=\lfloor\sqrt5\rfloor=2$、$5-4=1$;$\lfloor\sqrt{547}\rfloor=23$($529\le547<576$)、$547-529=18$;$\lfloor\sqrt{54756}\rfloor=234$、余り $0$ である。
  • $N=1000$:$n_1=10$、$n_0=0$。$j=1$:$c_1=10$、$3\cdot3=9\le10<16$ なので $d_1=3$、$a_1=3$、$r_1=1$。$j=0$:$c_0=100\cdot1+0=100$、$(60+d)d\le100$ は $d=1$ で $61\le100$、$d=2$ で $124>100$ なので $d_0=1$、$a_0=31$、$r_0=100-61=39$。ex-srl-isqrt の $\lfloor\sqrt{1000}\rfloor=31$、余り $39$ と一致する。
小数点以下に続けるとき

ex-srl-sqrt2 のように $00$ を $k$ 組つけ足すことは、$N$ の代わりに $100^kN$ に開平法を使うことである。$\sqrt{100^kN}=10^k\sqrt N$ なので、thm-srl-main により答えは $\lfloor10^k\sqrt N\rfloor$、つまり $\sqrt N$ の小数第 $k$ 位までを並べた数になる。$\sqrt2$ の例では $k=4$ で、$\lfloor10^4\sqrt2\rfloor=14142$ である。

$\sqrt2$ は分数で表せない数(無理数)である。証明は 実数とは何か:無理数の証明 で扱う。循環する小数(途中から $0$ が続く小数も含む)は分数で表せることが知られているので(この記事では証明しない)、開平法で求める $\sqrt2$ の小数の桁は、どこまで続けても循環しない。
割り算の筆算と同じく、立てる数字は「見積もって、大きすぎたら 1 ずつ減らす」ことが多い。$c_j\mathbin{÷}(20a)$ で見積もると、$(20a+d)d$ の $+d$ の分だけ大きすぎることがある(ex-srl-sqrt2 の 2 段目の $5$)。定理が保証するのは、正しい数字が $0$〜$9$ の中に必ずあることである。

多項式の開平法

lem-srl-identity の $10a$ を多項式 $A$ に、$d$ を多項式 $t$ に置きかえると、$(A+t)^2=A^2+(2A+t)\,t$ である。「$20a+d$」は「$2A+t$」になる。これを使うと、多項式の平方根も上から 1 項ずつ求められる。

$x^4+4x^3+10x^2+12x+9$ の平方根

$f=x^4+4x^3+10x^2+12x+9$ の平方根を求める。

  • 最高次の項 $x^4$ の平方根 $x^2$ を立てる。$f-(x^2)^2=4x^3+10x^2+12x+9$。
  • 残りの最高次の項 $4x^3$ を、立てた $x^2$ の 2 倍 $2x^2$ で割って、次の項 $2x$ を得る。$(2x^2+2x)\cdot2x=4x^3+4x^2$ を引いて $6x^2+12x+9$。
  • $6x^2$ を $2x^2$ で割って、次の項 $3$ を得る。ここまでの答え $x^2+2x$ の 2 倍 $2x^2+4x$ に $3$ を足した $(2x^2+4x+3)$ に $3$ を掛けた $6x^2+12x+9$ を引いて $0$。
    よって $f=(x^2+2x+3)^2$ である。$x=10$ を入れると $f(10)=10000+4000+1000+120+9=15129$、$x^2+2x+3$ は $123$ になる。$15129$ の開平法は、$1\,|\,51\,|\,29$ と区切って、$1$;$51$ で $(20+2)\cdot2=44$、残り $7$;$729$ で $(240+3)\cdot3=729$、残り $0$ となり、答え $123$ の数字の並び $1,2,3$ は多項式の係数と同じである。
多項式の開平法

$g(x)=b_nx^n+b_{n-1}x^{n-1}+\dots+b_0$($b_n\ne0$)とし、$f=g^2$ とする。$0\le k\le n$ について、$g$ の上から $k+1$ 項を $A_k=b_nx^n+\dots+b_{n-k}x^{n-k}$ とおく。$k< n$ のとき、$f-A_k^2$ は $0$ か次数が $2n-k-1$ 以下の多項式で、その $x^{2n-k-1}$ の係数は $2b_nb_{n-k-1}$ である。したがって、次の項は
$$ b_{n-k-1}x^{n-k-1}=\frac{(f-A_k^2\ \text{の}\ x^{2n-k-1}\ \text{の項})}{2b_nx^n} $$
で求まる。さらに $t=b_{n-k-1}x^{n-k-1}$ とおくと $f-A_{k+1}^2=(f-A_k^2)-(2A_k+t)\,t$ であり、最後は $f-A_n^2=0$ である。

残りを $(2A+R)R$ と書く

方針:$R=g-A_k$ とおき、$f-A_k^2=(2A_k+R)R$ と書いて、この積の最高次の項を調べる。
段 1(残りの形)。$g=A_k+R$ で、$R=b_{n-k-1}x^{n-k-1}+\dots+b_0$ は次数が $n-k-1$ 以下(または $0$)である。分配法則により
$$ f-A_k^2=(A_k+R)^2-A_k^2=2A_kR+R^2=(2A_k+R)\,R $$
である。
段 2(次数と係数)。$2A_k+R$ の最高次の項は $2b_nx^n$ である($R$ の次数は $n$ より小さい)。$R$ の項は $x^{n-k-1}$ 以下なので、積 $(2A_k+R)R$ の項の次数は $n+(n-k-1)=2n-k-1$ 以下である。$x^{2n-k-1}$ の項は、$2A_k+R$ の $x^n$ の項と $R$ の $x^{n-k-1}$ の項の積だけから出るので、係数は $2b_n\cdot b_{n-k-1}$ である。$b_n\ne0$ なので、これを $2b_nx^n$ で割ると次の項 $b_{n-k-1}x^{n-k-1}$ が得られる。
段 3(引き算の形)。$A_{k+1}=A_k+t$ なので、分配法則により
$$ A_{k+1}^2=A_k^2+2A_kt+t^2=A_k^2+(2A_k+t)\,t $$
であり、$f-A_{k+1}^2=(f-A_k^2)-(2A_k+t)t$ である。$A_n=g$ なので $f-A_n^2=0$ である。$\square$

係数に負の数がある場合

$f=x^4-2x^3+3x^2-2x+1$ の平方根を求める。

  • $x^2$ を立てる。残り $-2x^3+3x^2-2x+1$。
  • $-2x^3\mathbin{÷}2x^2=-x$。$(2x^2-x)\cdot(-x)=-2x^3+x^2$ を引いて $2x^2-2x+1$。
  • $2x^2\mathbin{÷}2x^2=1$。$(2x^2-2x+1)\cdot1=2x^2-2x+1$ を引いて $0$。
    よって $f=(x^2-x+1)^2$ である。$x=10$ を入れると $f(10)=8281$、$x^2-x+1$ は $91$ で、$91^2=8281$ である。ただし $8281$ の開平法の数字は $9,1$ で、係数 $1,-1,1$ とは違う。負の係数を整数の数字に直すと借りが起きるからである。

同じ手順を、次数の低い項から始めて行うこともできる(昇べきの開平法)。この場合、手順はふつう終わらず、項が限りなく続く。

$\sqrt{1+x}$ を昇べきの開平法で展開する

$1+x$ に、定数項から順に開平法を使う。

  • 定数項 $1$ の平方根 $1$ を立てる。残り $(1+x)-1^2=x$。
  • 残りの最低次の項 $x$ を、立てた $1$ の 2 倍 $2$ で割って $\frac x2$。$\bigl(2+\frac x2\bigr)\cdot\frac x2=x+\frac{x^2}4$ を引いて、残り $-\frac{x^2}4$。
  • $-\frac{x^2}4$ を $2$ で割って $-\frac{x^2}8$。ここまでの答え $1+\frac x2$ の 2 倍に $-\frac{x^2}8$ を足した $\bigl(2+x-\frac{x^2}8\bigr)$ に $-\frac{x^2}8$ を掛けた $-\frac{x^2}4-\frac{x^3}8+\frac{x^4}{64}$ を引いて、残り $\frac{x^3}8-\frac{x^4}{64}$。
  • $\frac{x^3}8$ を $2$ で割って $\frac{x^3}{16}$。
    こうして $1+\frac x2-\frac{x^2}8+\frac{x^3}{16}-\cdots$ が得られる。この級数が $|x|<1$ で $\sqrt{1+x}$ に収束すること、また係数が $\sqrt{1+x}$ の Taylor 展開の係数と一致することは、ここでは証明しない。Taylor 展開の考え方は 関数の近似とテイラー展開 で扱う。$\sqrt{1+x}=(1+x)^{1/2}$ の級数は二項級数と呼ばれる(二項級数)。
昇べきの開平法で $\sqrt{1.1}$ を近似する

上の 4 項 $1+\frac x2-\frac{x^2}8+\frac{x^3}{16}$ に $x=0.1$ を入れると
$$ 1+0.05-0.00125+0.0000625=1.0488125 $$
である。電卓の値は $\sqrt{1.1}=1.0488088\cdots$ で、差は $0.0000037$ ほどである。4 項の 2 乗を展開すると $1+x+\frac{5}{64}x^4-\frac{x^5}{64}+\frac{x^6}{256}$ となり、$x^3$ までは $1+x$ と一致している。

2 進法の開平法

lem-srl-identity と thm-srl-main で使った $10$ の性質は、「$2$ 以上の整数である」ことだけである。$10$ を底 $B$ に取りかえると、式は $(Ba+d)^2=B^2a^2+(2Ba+d)\,d$ になり、$N$ を $B^2$ 進法で区切って、各段で $0\le d\le B-1$ の数字を立てる。証明は $10$ を $B$、$100$ を $B^2$、$9$ を $B-1$ に取りかえるだけで同じである。
$B=2$ のとき、数字は $0$ か $1$ で、式は $(2a+d)^2=4a^2+(4a+d)d$ である。各段では「$4a+1\le c$ なら $1$、そうでなければ $0$」を決めるだけでよく、掛け算の見積もりがいらない。

2 進法で $\sqrt{45}$ と $\sqrt{100}$ を求める
  • $45=(101101)_2$ を右から 2 桁ずつ区切ると $10\,|\,11\,|\,01$、つまり 4 進法の区切り $2,3,1$ である。1 段目:$c=2$、$1\le2$ なので $d=1$、$a=1$、残り $1$。2 段目:$c=4\cdot1+3=7$、$4\cdot1+1=5\le7$ なので $d=1$、$a=(11)_2=3$、残り $2$。3 段目:$c=4\cdot2+1=9$、$4\cdot3+1=13>9$ なので $d=0$、$a=(110)_2=6$、残り $9$。よって $\lfloor\sqrt{45}\rfloor=6$、余り $9$ で、$36+9=45$、$9\le2\cdot6$ である。
  • $100=(1100100)_2$ を区切ると $1\,|\,10\,|\,01\,|\,00$、区切りは $1,2,1,0$ である。1 段目:$c=1$、$d=1$、$a=1$、残り $0$。2 段目:$c=2$、$5>2$ なので $d=0$、$a=2$、残り $2$。3 段目:$c=4\cdot2+1=9$、$4\cdot2+1=9\le9$ なので $d=1$、$a=5$、残り $0$。4 段目:$c=0$、$21>0$ なので $d=0$、$a=10=(1010)_2$、残り $0$。よって $\sqrt{100}=10$ である。

コンピュータで平方根の整数部分を求めるとき、2 進法で上の桁から 1 桁ずつ決める方法がある(Sho08 Exercise 3.29 は、答えの候補に $2^i$ を足してよいかを上の桁から順に調べる形の、同じ考えの算法である)。

例と反例:どの条件が効いているか

外した条件崩れる主張ボックス
右から 2 桁ずつ区切る答えが $\lfloor\sqrt N\rfloor$ex-srl-wrong-group
各段で条件を満たす最大の $d$ をとる各段の数字が 1 桁(thm-srl-main)ex-srl-too-small
$f$ が多項式の 2 乗(prop-srl-poly)多項式の開平法で残りが $0$ になるex-srl-nonsquare
反例:左から区切ると別の数の平方根になる

$54756$ を左から $54\,|\,75\,|\,6$ と区切ると、区切りの並び $(54,75,6)$ は $54\cdot100^2+75\cdot100+6=547506$ を表す。これに開平法を使うと、答えは $\lfloor\sqrt{547506}\rfloor=739$(余り $1385$)となり、$\sqrt{54756}=234$ とは違う。100 進法の区切りは、一の位から 2 桁ずつとらないと、もとの数を表さない。小数点以下は逆に、小数点から右へ 2 桁ずつ区切る($\sqrt{2}$ の $2\,|\,00\,|\,00$ のように)。

反例:小さすぎる数字を立てると次の段で 1 桁に収まらない

ex-srl-start の 2 段目で、$3$ の代わりに $2$ を立てたとする。$42\times2=84$ を引いた残りは $147-84=63$ で、$63>2\cdot22=44$ となり lem-srl-remainder の評価が崩れる。3 段目は $c=6356$ で、$(440+d)d\le6356$ を満たす $d$ は $d=9$($449\times9=4041$)でもまだ余裕があり、ちょうど等しくなるのは $d=14$($454\times14=6356$)である。$14$ は 1 桁の数字ではないので、正しい答え $234=220+14$ に 1 桁ずつでは届かない。prf-srl-main の段 3 で使った「$a=\lfloor\sqrt{N_{j+1}}\rfloor$」が成り立たないからである。

反例:2 乗でない多項式では残りが 0 にならない
  • $x^2+1$:$x$ を立てると残りは $1$ で、次の項は $1\mathbin{÷}2x$ となり多項式の項にならない。実際、$x^2+1=(x+c)^2$ とすると $x$ の係数から $2c=0$、定数項から $c^2=1$ で、両立しない(両辺の係数を比べる考え方は 恒等式と未定係数法 で扱う)。
  • $x^4+2x^3+5$:$x^2$ を立て、残り $2x^3+5$。$2x^3\mathbin{÷}2x^2=x$、$(2x^2+x)x=2x^3+x^2$ を引いて $-x^2+5$。$-x^2\mathbin{÷}2x^2=-\frac12$、$\bigl(2x^2+2x-\frac12\bigr)\bigl(-\frac12\bigr)=-x^2-x+\frac14$ を引いて $x+\frac{19}4$。これは次数 $1$ で、答え $x^2+x-\frac12$ の次数 $2$ より低いので止める。$x^4+2x^3+5=\bigl(x^2+x-\frac12\bigr)^2+x+\frac{19}4$ で、残りは $0$ でない。

さらに先へ

  • 開平法は、平方根を 1 回に 1 桁ずつ求める。Newton 法 $x_{k+1}=\frac12\bigl(x_k+\frac N{x_k}\bigr)$ を使うと、正しい桁数がおよそ 2 倍ずつ増えていく(証明はしない。Newton法)。この漸化式を「バビロニアの開平法」と呼ぶこともあるが、この記事の開平法(1 桁ずつ求める筆算)とは別の手順である。$N=2$ の漸化式 $a_{n+1}=\frac12\bigl(a_n+\frac2{a_n}\bigr)$ で $\sqrt2$ に近づく数列の収束は、縮小写像と漸化式 の方法で調べられる。
  • 同じ考えで、$(10a+d)^3=1000a^3+(300a^2+30ad+d^2)d$ を使うと、3 桁ずつ区切って立方根を 1 桁ずつ求める筆算(開立法)が作れる。
  • 昇べきの開平法で得た $\sqrt{1+x}$ の級数は、$\sqrt{1+x}$ の Taylor 展開(二項級数)と一致することが知られている(この記事では証明しない。関数の近似とテイラー展開、二項級数)。指数が自然数 $n$ のときの $(1+x)^n$ の展開が二項定理で、二項定理と組合せの恒等式 で扱う。
  • 整数の割り算の筆算・多項式の筆算との対応は、整数の筆算の仕組み、多項式の筆算と組立除法 で扱う。

関連項目

参考文献

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する