本記事の内容
本記事は『数学セミナー』(日本評論社)に掲載されている”エレガントな解答をもとむ”に出題されいている問題に、1時間で解けるか、という挑戦をする記事です。
本記事を読むにあたり、前提知識は基本的に必要ありませんが、以前紹介した記事の内容を使う場合はその旨を記述することにします。
今回は「エレガントな解答をもとむ selections」に掲載されいている問題です。
問題①
今回は、計算方法についての問題です。
哲平君は、小学生のとき引き算が大の苦手でした。そこで彼のあみだした手は、\(55-20\)ならば
$$
55+80=135
$$
とします。2桁の引き算なので百の位を無視して、答えは\(35\)としました。また\(351-250\)ならば
$$
351+750=1101.
$$
これは、3桁の引き算なので千の位はあるはずがなく、答えは\(101\)としました。彼は\(20\)に対する\(80\)、\(250\)に対する\(750\)を「連れ」と呼び大切にして、小学生の間はこの算法で快進撃をしました。ところが中学生になって\(20-55\)や\(250-351\)という負の符号の現れる計算に直面しました。そこで哲平君は「連れ」に似たような「道連れ」があるのではないかと思い、次のことを考え始めました。(1)小学生のときあみだした「連れ」の定義と引き算の原理を解明すること。
(2)これを発展させて中学生の引き算でも類似の原理をみつけ、「道連れ」なるものをうまく定義できるのであろうか。という2つの問題です。
数学セミナー編集部編(2001)『エレガントな解答をもとむ selections』日本評論社 p11-p12.
いざ、チャレンジ
チャレンジの結果、解けたか解けないかでいうと解けませんでした。
言い訳をすると、ニアミスにより間違えました。
なんとも情けないミスだったので少々凹んでいます。
筆者の解答
まずは、哲平くんが考えた計算方法を確かめるためにいくつか実験してみました。
例えば、\(55-5\)であれば、
$$
55+95=150
$$
で\(150\)の百の位を無視して答えは\(50\)です。
またこのときの\(5\)に対する「連れ」は\(95\)です。
同様にして\(251-6\)は
$$
251+994=1245
$$
で、\(1245\)の千の位を無視して答えは\(245\)です。
またこのときの\(6\)に対する「連れ」は\(994\)です。
この実験から桁数が関係しているんだな、と分かりました。
そこで、一般に\(n\)桁と\(m\)桁の引き算について「連れ」を考えてみることにしました。
※以下、ニアミスをそのまま書きます。
(1)の解答
\(n,m\in\mathbb{N}\)、\(n\geq m\)として、\(A,B\in\mathbb{N}\)を
\begin{eqnarray}
A&=&10^na_n+10^{n-1}a_{n-1}+\dots+10a_1+a_0\\
B&=&10^mb_m+10^{m-1}b_{m-1}+\dots+10b_1+b_0\\
\end{eqnarray}
と書いたとします。
ただし、\(A>B\)とします。
このとき、
\begin{eqnarray}
A-B&=&10^na_n+\dots+10^{m+1}a_{m+1}+10^m\left( a_m-b_m\right)+\dots+10\left( a_1-b_1\right)+\left( a_0-b_0\right)
\end{eqnarray}
となります。
このとき、\(B+x=10^{n+1}\)を満たすような\(x\)が「連れ」ということになります。
従って、\(10^{n+1}-B\)が\(B\)に対する「連れ」です。
故に、
\(n\in\mathbb{N}\)、\(A\in\mathbb{N}\)が\(n\)桁とする。このとき、\(B\in\mathbb{N}\)が\(A>B\)を満たすならば、\(10^{n+1}-B\)を\(B\)に対する連れという。
と定めれば良い、ということが分かります。
しかし、本来は「本当にこれで良いのか?」ということを議論する必要がありますが、そこまではできませんでした。
次に、「引き算の原理」ですが、何を持って原理なのか少々不安でしたが、ここでは、哲平くんの計算方法がなぜ正しい引き算の答えを導けるのか、ということを原理と捉えて話をします。
これは単純で、\(A>B\)のとき、
$$A-B=A+(10^{n+1}-B)-10^{n+1}$$
だからです。
最後に\(10^{n+1}\)を引くのは一番上の位の数を無視する、ということに対応しています。
※「”連れ”を求める時点で引き算ができてるんじゃないかな?哲平くん?」とは思いましたけれども(笑)
(2)の解答
これはもう「”連れ”と同じじゃん。\(A\)と\(B\)を入れ替えて同じことをすればいいじゃん」と思いました。
要するに、\(A<B\)のときは\(B-A\)を(1)の手法で(つまり、”連れ”を使って)計算して、導いた値にマイナスをつければ良い、と思いました。
従って、
と定めればよいだろう、となりました。
実際に、これで良いのか、というと\(A<B\)のとき、
\begin{eqnarray}
A-B&=&\left(10^{n+1}-A\right)-B+10^{n+1}\\
&=&-\left(10^{n+1}-A+B-10^{n+1} \right)
\end{eqnarray}
となるので、良いです。
解答
筆者の回答を読んで頂いた方は、もうお分かりかと思いますが、\(10^{n+1}\)ではなく、\(10^n\)でした。
\(10\)の時点で既に2桁だからです。
では、解答を述べます。
(前略)
まず、「連れ」についての定義は、世の中一般に知られている補数のことです。つまり\(r\)進法の\(n\)桁の数\(N\)に対して、この補数\(N_c\)は、
$$
N_c=r^n-N
$$
と定義する、ということです。つまり、ここでは、\(a>b\)に対して、もし\(b\)の桁が\(n\)ならば、その「連れ」は、
$$10^n-b$$
であり、この原理は、
$$
a-b=a+(10^n-b)-10^n
$$
となり、右辺の最後の\(-10^n\)が最高桁の\(1\)を取るということになります。
次に「道連れ」についても同様のことが定義出来るのですが、\(a<b\)において、\(a\)の「連れ」を「道連れ」として定義して、まず、\(b-a=b+(10^n-a)-10^n\)を考えて、次に
$$
a-b=-\left\{b+(10^n-a)-10^n\right\}
$$
とします。右辺の左端の負符号が、無条件につけるマイナスの意味となります。(中略)
しかし、ここで疑問が生じてくるのです。ここが「エレガントな解」の真髄なのですが、哲平君は、引き算が大きらいなのに、例えば、\(1000-232\)のような複雑(少なくとも哲平君にとっては)な引き算をいとも簡単にやってしむことが出来るはずがない、と断定するべきです。(少なくとも、私はそうした。) しかし、引き算が苦手な哲平君でも1桁の引き算くらいはできるだろうと考えてあげてもよいのではなかろうか、つまり、「連れ」を定義したとき、
\begin{eqnarray}
x&=&10^n-b\\
&=&(10^n-1)-b
\end{eqnarray}
とするとどうでしょうか? 先ほどの例では
$$
999-232=767
$$
これに1を加えれば\(768\)と一気に答が出て来るのです。この計算を見れば、各桁の借りは一切ないことに気づくでしょう。じつはこれが、擬補数と呼ばれる数の定義担っています。つまり、先程定義した補数は真補数と呼ばれ、擬補数の定義は、次のようになります。
\(r\)進法\(n\)桁の数\(N\)に対して、この擬補数\(N_p\)は
$$
N_p=(r^n-1)-N
$$
として表せる、ということです。
そして、もし\(N=a_1a_2\cdots a_n\)で、\(N_p=b_1b_2\cdots b_n\)とすると、角\(1\leq i\leq n\)に対して、各桁\(b_i\)は
$$
b_i=(r-1-a_i)
$$
となります。(中略)
この考えを2進法に適用すると、例えば、
数学セミナー編集部編(2001)『エレガントな解答をもとむ selections』日本評論社 p75-p76.
$$N=10101\quad ならば\quad N_p=01010$$
で\(N_c=01011\)と単に\(0\)と\(1\)を逆転させて、\(1\)を加えるだけで真補数が求まります。そこで\(10\)進法の原理にもどって考えてみると、\(2\)進法の引き算も同様にたし算として扱え、その上\(10\)進法よりもはるかに機械的に取り扱えることがわかるのです。つまりこの哲平君は、鉄の塊のような箱、コンピュータだったというのが正解なのでしょうか?
筆者が思った通り、「哲平君、結局引き算してるじゃん」というのは出題者も感じていたようです。
出題者は1桁の引き算は出来る、ということにして擬補数を導入した、ということのようです。
とはいえ、結局引き算してるじゃないか、ということには変わりないわけですが。
今回の問題でコンピュータで引き算がどのようにして行われているかが分かって面白かったです。
読者の皆様への挑戦状!
今回から、実際に筆者が解くのは1問として、1問は読者の皆様に挑戦状という形で出題したいと思います。
今から紹介する問題の解答は来週解説します!
太郎君がこう言いました。「太陽から地球に光が届くには\(8\)分ほどかかる。地平線に太陽が沈んだと見えるときには実際の太陽の位置は\(8\)分ほど進んだ地平線の下の方にあるんだ。」
数学セミナー編集部編(2001)『エレガントな解答をもとむ selections』日本評論社 p12.
次郎君は「へー、なるほど」と言ってちょっと考えていましたが、「本当にそうなのかなあ」と少し疑問があるようです。
太郎君が正しいのか次郎くんが正しいのか、読者の明快でエレガントな説明を求めます。
結
いかがでしたか?
今回は数セミの「エレガントな解答をもとむ」に挑戦してみる、という記事でした。
魔法陣は初めて解きましたが、結局力技が入ってくるのでしょうか…?
時計の問題は結局筆者の読解力不足でした。
読者の皆様も是非一度挑戦してみて下さい!
そして、「読者の皆様への挑戦状」にも是非挑戦していただき、解答をコメントで教えて下さい!
質問、コメントなどお待ちしております!
どんな些細なことでも構いませんし、この記事に限らず、「定理〇〇の△△が分からない!」などいただければ全てお答えします!
お問い合わせの内容にもよりますが、ご質問はおおよそ3日以内にお答えします。
もし直ちに回答が欲しければその旨もコメントでお知らせください。直ちに対応いたします。
Twitterでもリプ、DM問わず質問、コメントを大募集しております!
コメントをする