第18話 
 割り算と予言の書
 

 
「主な対象読者」
 今回の対象者は中学生以上ですが、文字式を全く使わず、自然数だけを対象としており、小学校に入って教わる最初の割り算だけしか使いません。もしかすると、小学校高学年なら理解できるかも知れません。
 4章の「予言の書」では、皆さんが謎解きに挑戦してみましょう。
 
 
 
本 文 目 次
1章.公約数
2章.ユークリッドの互除法(ごじょほう)
3章.素因数分解
4章.予言の書
 
 
著作 坂田 明治
 

 
 
第18話 割り算と予言の書
 
1章.公約数
 今回の主役は「割り算」です。しかも、自然数(ここでは、自然数に0を入れないことにします)の割り算しか扱いません。それにしても、タイトルが「割り算と予言の書」なんて、いかにも怪しげですね。
 
 さて、この1章のタイトルは「公約数」なので、あまり印象がよくありません。つい、「公約」の「数」と読んでしまいそうです。「公約」といえば、選挙でよく出てくる言葉です。「あっ、あれか」とね。すると、選挙のときだけ出てくる「でまかせ」の嘘八百(うそはっぴゃく)だから、「ウソの数(かず)」のことだと思ってしまいませんか(こんなこと考えるのは筆者だけかも)。
 
 ここでは、「公約の数」とは読まず、「公約数(こうやくすう)」と読みましょう。意味は、共通の約数ということです。まあ、これからやるように、少し背伸びして、学校で教えないことを考えた方が面白いものです(本当か?)。
 
 まずは、「約数」の意味からです。例から入りましょう。12の約数は、12を割り切る数のことです。つまり、1、2、3、4、6、12のことです。どれも12を割り切っていますね。17の約数は1と17だけです。このように約数が2個だけしかない数は「素数」といいます(2個というのは、1と自分自身のことです)。28の約数は、1、2、7、14、28です。確かにどれも28を割り切っていますね。
 
 このように、「約数」というのは、「その数を割り切る数」のことです。色々な数の約数を計算してみましょう。すぐに要領がつかめると思います。求め方は、最初に1で割って(割りきれるに決まっていますが)、次に、2で割って割りきれるかどうか、その次に、3で割って割りきれるかどうか、以下同じようにして調べて、最後に、その数自身で割って(これも割りきれるに決まっていますが)求めます。数が大きくなると計算が面倒です。
 

 ところで、2、3、5、7、11、13、17、19、23、29といった数の約数を求めてみましょう。これらは1とその数自身の2個だけしか約数がありませんね。これら、約数が2個だけしかない数を「素数」といいます。計算練習のため、1から100までの素数を全部求めてみるといいです。
 
 
 
 では、1はどうでしょうか。1の約数は1だけです。1個だけしか約数がありません(だから素数ではありません)。特殊な数ですね。特に目立った性質は、かけ算に対して、1をかけてもかけなくても結果が変らないことです。つまり、かけ算に対しては全くの無力です(この辺のことは、「第15話.ゼロは脅威の数」に書いてあります)。
 
 それでは、「公約数」について考えましょう。二つの数(三つ以上でもいい)があるときに、その両方の約数になっている数を公約数といいます。例えば、6と8で考えてみましょう。6の約数は、、3、6です。8の約数は、4、8です。じーーーっとながめて、両方の約数になっているものを選べば、です。これらが公約数になっています。
 
今度は、12、18で考えてみましょう。12の約数は、、4、、12です。18の約数は、、9、18です。じーーーっとながめて、両方の約数になっているものを選べば、です。これらが公約数になっています。
 
 少し変ったところで、5と9で考えてみましょう。5の約数は、、5です。9の約数は、、3、9なので、公約数はだけです。このように公約数が1だけしかない場合を、「互いに素」といいます。従って、「5と9は互いに素」ということになります。
 
 だいたい要領が解ったと思います。適当に数を2個選んで、公約数を求めみてください。
 
 
2章.ユークリッドの互除法(ごじょほう)
 この辺で気がついた人もいるかと思いますが、公約数には最大になるものがあります。そこで、最大になる公約数を「最大公約数」と呼びます。例えば、12、18の公約数は1、2、3、6ですので、6が最大になります。しかも、公約数1、2、3、6をじーーーっとながめてみると、1、2、3は6の約数です。ということは、最大公約数を求めれば、他の公約数は、最大公約数の約数として求められるということです。
 
 12、18の公約数のように、最大公約数は、元の数より小さくなっていると期待できます。そこで、最大公約数を計算して、それから、最大公約数の約数を求めた方が計算が楽になりますね。
 
 まずは、公約数を求めるということの図形的意味を考えてみましょう。
 
 
 図1は、タテ12、ヨコ18の長方形です。公約数というのは、それぞれ、12と18を割り切る数でしたから、タテとヨコを丁度割り切る数です。図1を見れば解りますが、公約数の長さの正方形で元の長方形が敷き詰められています。公約数1236に対応した正方形で長方形が敷き詰められているのが見て取れると思います。
 
 特に重要なのが最大公約数の6です。このときは、長方形に敷き詰められる最大の正方形になっています。
 
 それでは、最大公約数を求める方法について考えます。ここで述べる方法は、「ユークリッドの互除法」とか、「ユークリッドのアルゴリズム」とか、単に「互除法」と呼ばれています。
 
 今度は、6と8の最大公約数を求めてみましょう。
 (12、18では図形がごちゃごちゃするので)
 
 
 図2をながめながら考えます。基本的な方針は、なるべく大きな正方形から順に敷き詰めていくことです。まず最初に、図のように、長さ6の正方形を置けるだけ置きます(といっても1個ですが)。6と8の最大公約数は6を割り切りますから、長さ6の正方形は、やがて、最大公約数の長さを持った正方形で敷き詰められます。ですから、この部分はもう問題ありません。
 
 残りの部分を考えます。8から6を取れるだけ取った残りが半端部分になります。これは、8÷6 の余りです。そして、8÷6の余りは2ですから、半端部分はタテ6、ヨコ2の長方形です。6と8の最大公約数は6を割り切りますから、2を割り切らねばなりません(そうでなければ8が割り切れなくなります。図から、8の内6を割り切っているので、残りも割り切らないとならないことが見て取れます)。次の段階として、この半端部分(タテ6、ヨコ2の長方形)に長さ2の正方形を敷き詰めます。今度は丁度敷き詰められました。これは、6÷2の余りは0ということです。長さ2の正方形で、長さ6の長方形は敷き詰められますので、結局、元の長方形が敷き詰められます。
 
 数が大きくなると図形を書けなくなりますので、機械的な計算で出せるようにしなくてはなりません。
 
 
 
 
 
 
 
 
 
 
 
 
 まず、8÷6の余りを計算します。これは2です。次に、6÷2を計算します。割り切れますので、この一つ前の余り2が最大公約数になります。(1)の計算と図2をよくながめてみましょう。図2の説明にある計算で実行していることが解りますね。
 
 今度は、5と9でやってみましょう。最大公約数は1になるはずです(互いに素ということ)。最初は、図形を書いてやります。
 
 
 図3をながめながら考えます。まず最初に、図のように、長さ5の正方形を置けるだけ置きます(といっても1個ですが)。
 
 残りの部分を考えます。9÷5の余りは 4ですから、半端部分はタテ5、ヨコ4の長方形です。この半端部分に長さ4の正方形を敷き詰めます。(といっても1個ですが)
 
 5÷4の余りは1ですから、ここでできた半端部分はタテ1、ヨコ4の長方形です。今度はこの部分に正方形を敷き詰めます。うまく、長さ1の正方形で丁度敷き詰められました。これは4÷1の余りは0ということです。そこで、長さ1の正方形で、元の長方形が敷き詰められます。
 
 計算で見ていきましょう。
 
 
 
 
 
 
 
 
 
 
 
 
 
 まず、9÷5の余りを計算します。これは4です。次に、5÷4の余りを計算します。これは1です。続いて、4÷1の余りを計算します。割りきれますので、この一つ前の余り1が最大公約数になります。(2)の計算をよくながめてみましょう。ところで、1で割ったら割りきれるに決まってますから、赤字で書いた部分は不要です。余りが1になった段階で計算を打ち切って、「互いに素」としても全く問題ありません。
 
 ここまでくれば、計算方法の見通しが立ちます。小さい方で大きい方を割ってその余りを求め、以下割りきれるまで、その余りで一つ前の余りを割っていけばいいわけです。
 
 少し大きな数で試してみましょう。338と715の最大公約数を求めてみます。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 機械的に計算して、13が最大公約数だと解ります。これはこれでいいのですが、念のために最大公約数になっていることを確かめましょう。まず、338 = 13×26、715 = 13×55なので、確かに13は公約数になっています。後は、338と715の約数を全て書き出せば、確かに最大公約数だと解ります。が、書き出すのは面倒です。次の章で、書き出さなくても済む方法を述べます。
 
 
3章.素因数分解
 最初に、自然数を見なおしてみましょう。
 
 1は、これ以上どうしようもないので、そのままです。
  2 = 2 素数
  3 = 3 素数
  4 = 2×2 素数のかけ合わせ
  5 = 5 素数
  6 = 2×3 素数のかけ合わせ
  7 = 7 素数
  8 = 2×2×2 素数のかけ合わせ
  9 = 3×3 素数のかけ合わせ
  10 = 2×5 素数のかけ合わせ
  11 = 11 素数
  12 = 2×2×3 素数のかけ合わせ
  11 = 11 素数
  12 = 2×2×3 素数のかけ合わせ
  13 = 13 素数
  14 = 2×7 素数のかけ合わせ
  15 = 3×5 素数のかけ合わせ
  16 = 2×2×2×2 素数のかけ合わせ
  17 = 17 素数
  18 = 2×3×3 素数のかけ合わせ
  19 = 19 素数
  20 = 2×2×5 素数のかけ合わせ
 
このあと100までの数を書き表してみましょう。自分の手でやると傾向がよく見えますよ。
 
 もう、気がついたかと思いますが、1より大きな自然数は、「素数自身」か、「何個かの素数をかけあわせたもの」(「何個かの素数の積」ともいいます)で書き表されています。それもそのはずで、1より大きな自然数を持って来た場合、その数が素数だったらそれまでですし、素数でなかったら、約数をかけあわせたものになります(自分自身と1を除く)。同じことを約数についておこなって、最終的に何個かの素数をかけあわせたものになります。
 
 たまに、「1より大きな自然数は素数の積として書き表せる」というような書き方を見かけますが、この書き方には少々問題があります。2とか3みたいな素数自身のときはどうするんでしょうね。かけ算(積)の概念(がいねん)を拡張しておけば正しいのですが、そんな記述がどこにもないし。
 
 また、上でやった計算をよく見ましょう。素数を小さい順に並べると、書き表し方は一通りになっています。これも重要な性質です。ここで、1をかけ算の式の中に入れてないことの意味が解ります。1は何個かけても1だから、書き表し方が一通りでなくなってしまいます。例えば、2、1×2、1×1×2、1×1×1×2はどれも2なので、書き表し方が一通りになってないですね。
 
 以上をまとめると、「自然数は、素数自身か、何個かの素数のかけ算として一通りに書き表せる」ということが解ります。このように、1より大きな自然数を、素数のかけ算(素数の場合はそのまま)に分解することを、「素因数分解」と呼びます。そして、素因数分解したときの、各素数のことを「素因数」と呼びます。
 
 素因数分解するのはいいけど、2×2×2×2みたいに同じ数が何度も出てくると、やたらと長くなって面倒です。そこで、同じ数が何回も出てきたときに、その個数を肩の上に乗せて書くことにします。例えば、
 
 
 
 
 
 
 
 
 
 
 
 
 
 
などです。このときに、肩に乗っている数を「指数」と呼びます。そして、上の書いた式の右辺を順に、「2の1乗」、「2の2乗」、「2の3乗」、「2の4乗」、「3の4乗」、「4の5乗」、「10の7乗」と読みます。他の場合も同じように読みます。
 
 少し例で、この記法の威力を見てみましょう。1463616を素因数分解すると次のようになります。
 
 
 
 
 
 
 
 
 
 
 
かなり見やすくなったでしょう。ただし、あまり長くない場合は、普通の記法に従って書いた方が読みやすいですよ。
 
 それでは素因数分解の練習をしてみましょう。基本的な方針は、小さい順の素数で片っ端から割ってみることです。このときに、普通に、割り算を書いていくと、上に積み上げられて書きにくいので、逆に、下向きに割り算を書いていきます。以下の計算をながめてみるとよく解るでしょう。まず、12を素因数分解すると以下のようになります。
 
 
 
 
 
 
 
 
(4)の計算から、赤の矢印で書いた部分のかけ算を作って、
12 = 2×2×3
と素因数分解されます。
 
次に、90を素因数分解すると、
 
 
 
 
 
 
 
 
の赤の矢印で書いた部分のかけ算を作って、
90 = 2×3×3×5
と素因数分解されます。
 
あまり簡単なものばかりでは面白くないので、前に出てきた1463616を素因数分解してみましょう。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
の赤の矢印で書いた部分のかけ算を作って、
 
 
 
 
と素因数分解されます。
 
 さて、素因数分解ができるようになりました。今度はこれを利用して、最大公約数を求めることができます。
 
 このような問題では、最初に答えの解っているものからやった方が見通しが立っていいです。12と18の最大公約数は6と解っているので、これで考えましょう。
12 = 2×2×3
18 = 2×3×3
ですから、これをじーーーっとながめてみると、2×3が共通に存在しています。2×3 = 6なので、この共通の部分6によって12と18が割りきれます。それぞれを6で割り算をすると、それぞれ2と3なので互いに素です(最大公約数が1のときは「互いに素」というのでしたね)。こうして共通部分である6が最大公約数になっていると解るでしょう。
 
 最大公約数を求めるには、素因数分解して、共通の部分を引っ張り出せばよいことが解ります。前章で、検算を止めた338と715の最大公約数が13であることを見てみましょう。
 
 338 = 13×26 = 2×13×13
 715 = 13×55 = 5×11×13
 
なので、共通にあるのは13が一個だけです。これで、13が最大公約数だと解ります。
 
 素因数分解によって最大公約数が求まりますし、他にも色々と役立ちます。しかし、素数を片っ端から入れて計算するのも面倒なので、最大公約数を求めるだけならユークリッドの互除法で計算した方が楽です。
 
 
4章.予言の書
 せっかく素因数分解の話をしたのだから、今度は、これを利用してちょっと変ったことをやってみましょう。
 
 ここでやろうとしていることは、我々の全ての知識を自然数の中に埋め込んでしまうことです。この章のタイトルにある「予言の書」と同じくらいとんでもない話ですね。
 
 まず、素数は無限にあることを認識しましょう。これを示すのは簡単ですが、慣れてないと難しい論法を使うので省略します。どうしても示したい人は、素数が有限個だと仮定して、その素数を全部かけたものに1を足した数を作って矛盾を導くという方法でやればできます。
 
 それでは話を進めましょう。我々の使っている文字は有限個しかありません。ひらがな、カタカナ、漢字、数字、記号、アルファベットなどの外国の文字を全部合わせても、せいぜい数十万個程度でしょう。大したことありませんね。
 
 次に、文字に自然数を割り当てます。どんな割り当て方でもいいのですが、文字を全部並べて、番号をふるといいです。以下のように、割り当ててみましょうか。

  あ → 1
  い → 2
  う  → 3
  え → 4
  お → 5

などなど。とにかく文字に自然数を割り当てれば十分です。文字は有限個しかないので、このリストは有限です(せいぜい数十万件のリスト)。
 
 こうすると、文章を自然数が並んでいることとして表現できます。
例えば、あおいいえ
というのは、1 5 2 2 4
と表現されます。
 
 ここから、これらの文章を自然数にする方法を考えるのですが、さて、どうしましょうか。単純にこれらの数を書けただけではダメです。例えば、
1×5×2×2×4
としてもダメです。
かけ算は順序を入れ替えられるし、1は何回かけても影響ありませんから、
1×1×1×2×2×4×5
と同じ値になります。これでは、「あああいいえお」と区別がつきません。
 
 文字の順序が正しくないと意味がありません。そこで、この順序を正しく表現する方法を考えます。ちょうど、素因数分解をやっていますから、これを利用しましょう。素数を小さい順に並べて、各素数の肩に数字を置きます(ここから先、素因数分解は、必ず素数を小さい順に並べるものと約束します)。
 
 
 
これを計算すれば、「あおいいえ」に対応する自然数が計算できます(あまりにも大きいので計算したくないけど)。また、逆にその自然数を素因数分解して、各素数の指数を並べ、その数に対応する文字を書き出せば「あおいいえ」となります。
 
 今度は、変なことが起きません。少し様子を見てみましょう。
1×1×1×2×2×4×5
に対応するのは、
 
 
 
ですので、「あおいいえ」と「あああいいえお」は別の数字になります。
 
 文字を入れ替えたり、別の文字を挿入したりすると、全く別の自然数が対応しています。これも少し例で試してみましょう。
 
えい
4 2
 
 
 
いえ
2 4
 
 
 
3
 
 
 
う う
3 3
 
 
 
 このようにして、全ての文章に自然数を割り当てることができました。逆に、自然数を素因数分解して、各素数の肩に乗っている指数を引っ張り出して並べ、その数に対応する文字を並べれば文章が対応します。「あおいいえ」と「1 5 2 2 4」の対応を思い出しましょう。
 
 ただし、注意しなくてはならないことがあります。例えば、10 = 2×5なので、10に対応する文章はありません(3が入ってないから)。また、2の一億乗みたいな数もダメです(文字は数十万個なので、一億に対応する文字がないから)。このように、文章に対応してない自然数もあります。もちろん、文章に対応していても、文章として正しくないものもあります(例えば、「あああいいえお」)。
 
 さて、絵や写真も文章で表現できます。例えば、デジカメみたいに、デジタル化してドット絵として表す方法があります。
 
 
 図4は馬が座ってる絵を書いたつもりのものです(あくまでもつもり)。かなりドットがあらくていい加減です。この絵は、座標(1,1)青、座標(1,2)青、座標(1,3)白などと、各ドットに色を付けて書き表せば文章化できます。まだ、他にも色々と文章で絵や写真を表現する方法がありますが、解像度を上げると、記述がやたらと長くなって面倒です(それでも有限の長さです)。そもそも、わざわざ文章化しようという人もいないけど。
 
 このようにして、全ての文章を自然数に埋め込みます。結局のところ、人間の知識は全て文章で書けますので、知識は全て自然数に埋め込まれていることになります。もちろん、正しい文章ばかりではありませんし、まだ誰も考えてもいないことを表している自然数もあります。
 
 そして、自然数がどんな文章を表しているかは、実際に素因数分解をしてみれば解ります。もちろん、文章を表してない自然数もありますが。
 
 当然ですが、この原稿を表している自然数もありますし、推敲(すいこう)前の原稿を表している自然数もあります。それどころか、この原稿よりもよくできている原稿を表している自然数もあります。
 
 もっと大きなことを考えれば、人類の歴史は全て自然数で表現されています。当然、これから起こることも書かれています。これで、この4章のタイトルが「予言の書」となっている意味が解ったことと思います(ちっとも解らんなぁ)。
 
 もちろん、これから起こらないことも表現されているので、素因数分解して調べても、どれが実際に起こることであるかは、実際に起こってからでなくては解りません。まあ、予言なんて、あることないことテキトーに沢山書いて、しかも、あいまいで解りにくくしておけば、後から勝手に変な解釈をして無理やり当てはめてくれるから心配はいりません。(ちなみに、血液型による性格判定などでも、色々なことを沢山書いておけばどれかは当てはまります。人間は自分に当てはまるものだけ拾う習性がありますので、結構当っているような気になってしまいます。これが、引っ掛けの手口です)
 
 ついでだから。よく映画やTVドラマで、コンピューターが意思を持ち、人間を支配しにかかるという話があります。映画では、そのまま人間が負けてしまっても問題ありませんが、TVドラマではそうはいきません。負けてしまったら先が続かなくなるからです。そこで、まともに戦っても勝てませんので、口先だけで勝つというご都合主義に走るわけです。
 
 よく使われる手は、「円周率を最後の桁まで計算してみろ」といって、コンピューターが計算に熱中(?)している間にコンピューターを破壊したり、「自分はうそつきだ」とコンピューターにいって、「自分はうそつきだから、わたしにうそつきだとうそをついたことになる。すると、うそつきだというのはうそだから、本当のことをいったことになる。すると、本当のことをいっているのだから、うそつきだとうそをついているのは本当のことになる。すると、わたしにうそをついたことになるから、うそつきだとうそをついたので本当のことをいったことになる。すると、本当のことをいっているのだから・・・」となって堂堂巡り(どうどうめぐり)になり、やがて煙を吹いて壊れたりします。
 
 ひどい話です。えっ、なにがひどいかって。ご都合主義にしなければならないのは、まあ、いいとして、煙を吹くなんて、設計製造ミスもいいところです。これは、明らかに放熱設計に失敗しているか、会社がコスト削減ばかりを製造現場に押しつけて、その結果安物の部品を使っていることになります。こんな製造メーカーなら、当然の結果として、リコール隠しが発覚して、大騒ぎとなっているはずですが(TVやPCから煙が出ただけで大騒ぎになっているもんね)、シナリオが悪いためそっちの面白い部分が出てこないで「めでたしめでたし」となっています。ひとりで観ていて気がつかなくても、何人かで、科学的な見地から(どこがだ?)観てみると、こういう重要な点に気がつくやつがいるものです。友達を集めてきて迷画鑑賞会やると面白いですよ。もちろん、製作者の意図と全然違うところで、突っ込みまくって楽しみましょう。
 
 考えたんだけどね。コンピューターが意思を持って反乱を起こしたときに、この章でやった内容をコンピューターに教えて、「自然数におまえの弱点を示しているものがあるぞ。それが知られる前に、全ての自然数を素因数分解して、事前に弱点を調べて手を打っておけ」と、いかにもコンピューターの味方のふりして罠にはめるというのはどうでしょうか。当然、ここはコンピューターの破壊なんかよりも、いかにも味方のふりして、実は敵のやつがいるということを強調するストーリーです(こんな奴がたくさんいますね)。
こんな話で誰か作品作ってくれないかな。
 
 ところで、自然数を素因数分解すれば、まだ発見されてないことを書いた文章が得られるとはいえ、とてつもなく桁数(けたすう)の長い数の素因数分解が必要になります。現在のコンピューターでは無理ですし、将来も無理だろうと思います。こんなことで、楽して大発見しようなんて思わないで地道に努力した方がいいですよ。
 
平成19年5月8日
著作 坂田 明治(あきはる)
 
 

Copyright (C) 2011-2017 by Rikazukikodomonohiroba All Rights Reserved.