第32報
'03.9.1

PDF
力ずく


 アルゴリズム〔※1〕というものを専門学校で教えていました。フローチャート〔※2〕とかを描きながら、計算手順を検討して決めるという授業です。もちろん計算手順はコンピュータに命令するそれです。プログラムといわないのは、プログラムはどのコンピュータ言語で手順を記述するかまで含みますから。
 授業の課題として取り上げたのは「鶴亀算」。『鶴と亀があわせて何匹いて、足の数は全部で何本です。鶴と亀はそれぞれ何匹いるでしょう? (片足で立っている鶴や足を引っ込めている亀はいないものとします)』というやつ。小学校の終わり頃に習ったと思いますが、計算手順は忘れました。中学校に入ってから連立方程式を習って、「なんだ鶴亀算なんかこれで解けるんだ。小学校じゃ騙された。」と思った時からすっかり忘れています。テレビのクイズ番組でも問題として出て、解き方の解説をしていましたが、聞いても思い出せません。
 さて、鶴亀算を出したときの学生は誰も思い悩んでいました。そのうち一人が「鶴が1匹として足の数を計算して合っているか確かめ、あわなければ鶴を2匹として計算して、また合わなければ3匹…、と答えが合うまで繰り返しても良いのか?」という提案。「ん、それがいちばん悩まなくてすむ方法だな。まる!」としました。算数や数学の授業ではありませんから、正解の一つです。なお、鶴がゼロ匹から始めないと、答えを見逃しかねません。
 この計算手順は単純ではあるが、何回も繰り返すので手間がかかります。鶴が10匹程度が答えならいいですけど、鶴と亀があわせて何百万匹だったら、この手順ではやる気にはなりません。でも、コンピュータは人間と違います。機械ですから何億匹だろうとさっさと計算します。

 そもそも、コンピュータの原理では正整数の足し算しかしません。負(マイナス)の数も正(プラス)の数で対処します。「2時50分」を「3時10分前」といいますね。時計の世界では50分は10分前、すなわちマイナス10分ということです。コンピュータも同じ原理で、引き算はマイナスを足すこと、掛け算は何回も足すこと、割り算は何回引けるか数えること、というわけです。すべて足し算に持ち込みます。九九などという便法はありません。そうそう、娘が九九を習っているころ、「3×5は?」とたずねると、後ろを向いて両手の指を別々に折りながら3を5回足してました。コンピュータの原理もこれと同じ。ただ、娘と違うのは、コンピュータはとても速い、そして間違えない。その上泣き言をいわずに繰り返す。

 ついでに、足し算は二進数の論理演算の組合せです。コンピュータは論理演算を電気回路にして組上げた機械なのです。二進数を使うのは、0か1かだけの単純な世界だから。電流なら+と−、電圧なら高と低、磁石ならNとS、光なら有と無、といった具合に物理的にも単純になるのです。そう、コンピュータは単純なのです。それゆえ正確に、高速で、繰り返し繰り返し、計算するのです。

 計算手順を考えるとき、「単純」に「繰り返す」ことを心がけます。そのほうが機械にあっているからと思うのです。「正確」なのは保証済みですから。というわけで、さきの学生の提案は「まる!」としたのです。

 時代物の小説〔※3〕に「円周率」を算出するくだりがありました。円に内接する正四角形の一辺の長さは三平方の定理(ピタゴラスの定理〔※4〕)で直径から求められる。その一辺の長さを基に倍の八角形の一辺の長さを求め、次にそれを基に倍の十六角形の一辺を求め、さらにそれを基に倍の三十二角形の一辺を求め… をすすめていき、正十三万千七十二角形ぐらいになればもうほとんど円周と同じ長さですから、求めた一辺を十三万千七十二倍して直径で割れば円周率です。江戸時代ですから算盤とか算木で計算したのでしょうね。シャープペンはおろか鉛筆もありませから、墨と筆ですね。径一〇割・周三一割四分一厘五毛九糸… まで求めたとか。大変な苦労だったでしょう。
 同じことを表計算ソフトでやってみました。4角形の1辺はルートで求め、下の行で8角形の計算、ここまで式を入れたら、8角形の行を下の行にコピーして16角形、それをまた下の行にコピーして、更にコピーして…いくと、

出ました 131072角形で 3.141592653、倍の262144角形で 3.141592654。

 やっぱり、単純な繰り返しには強いや、機械ってのは。力ずくだね。



※1 アルゴリズム【algorithm; algorism】(アラビアの数学者アル=フワリズミーの名に因む)
 @アラビア記数法。
 A問題を解決する定型的な手法・技法。コンピューターなどで、演算手続きを指示する規則。算法。【広辞苑】
※2 フロー‐チャート【flow chart】
 作業や処理の手順を特定の記号を用いて図式的に表現したもの。流れ図。フロー‐シート。【広辞苑】
※3 井上ひさし著「四千万歩の男」
※4 ピタゴラス‐の‐ていり【―の定理】
 幾何学の定理の一。直角三角形の斜辺の上に立つ正方形の面積は、他の2辺の上に立つ正方形の面積の和に等しいという定理。日本では、古くはこれを鈎股弦(こうこげん)の定理と称した。三平方の定理。【広辞苑】



★ お ま け ★

円周率を計算した表計算ソフト(エクセル)のワークシートがダウンロードできます。
chu32.xls



 TOPへ