読者です 読者をやめる 読者になる 読者になる

何気ない記録

なんとなく自分の意見を書き記すときにつかいます。つまり不定期更新です。

3.9+5.1は9.0と考えて欲しい理由

 

【朗報】3.9+5.1=?という問題で、答え9.0が減点だった案件にフィールズ賞受賞者が結論を出す|しきそく

数学的にどうかは別として、そもそも3.9と5.1は小数第一までの精度を保証しているので、その答えは本来は9.0とする(小数第一位までの精度を保証)のがプログラマーだと思う。だからどうしたというわけでもないが・・・

2016/12/27 12:24

 

これ放送を妻とみていて、私がアホのように妻に言った内容をそのまま記事にします。

 

※なお、かなり簡潔に書いていますので、多少語弊もあります点ご容赦くださいませ

 

まず、算数や数学、それぞれの事情があるとは思うんです。

ただ、とりあえず小学生に対してであれば、9.0と9は同じよね、っていう話にはすべきではあるかなと。

 

ただ、それを超えた先の話として、僕は、情報技術をこれから低年齢での必須科目とするのであれば、「3.9+5.1」の回答は「9.0」と答えるようにする指導要領を整備してほしいと考えています。

 

理由は単純で、今やあらゆるところでコンピューターやそれに付帯するソフトウェアは使われています。

 

その中では、当然、様々な計算がされており、日常的なところでいえば消費税の計算であったり、割合のようなものもあるかと思います。

 

こういった計算は、何気なくしていると思うのですが、この時、小数についてちゃんと考えないと、結果は正しくなりません。

 

例えば「3.9」とは文字通り「3.9」という数値を表しているのですが、これが情報技術の世界に入ると、それだけを表すわけではありません。

 

一般的には「3.9」とコンピューターの世界で表すとき、それを見た場合「3.9」という数値であることと同時に、「小数第一位までの精度が保証されている」という事を暗黙的に理解している事となります。

 

例えば「3.91」という数値があったとしても、計算精度が小数第一であった場合「0.01」という部分は保証されません。

 

この考え方は「当たり前」と思うかもしれないのですが、当たり前ではないのが皆さんが日頃使っているコンピューターなんですね。

 

その事を理解できれば「1」と「1.0」が何を表すのか、という事も明らかになりますね。

 

そう「1」は小数以下の精度を保証しない。

「1.0」は小数第一までの精度を保証する。

 

この結果、内部的に計算する場合も、例えば計算過程におい小数第一位未満の桁が存在したとしても「その結果は採用されない事となります」

「採用しない」という場合も、計算過程において、どのように処理をするのか?という事が重要になります。

 

例えば、消費税の計算を行う場合、一つは単価に個別に消費税を掛け、個々に小数第一までを保証し、合計後、精度を小数以下を切り捨てるとした場合と、消費税は単価の合計に対して掛け、その合計に消費税率を掛けたものの精度を小数以下を切り捨てるとしたものでは結果が異なります。

 

異なるという事がわかれば、どうすべきか、という疑問が生まれます。

疑問がうまれれば、解決しなければならず、結果として、正しい答えに一歩近づきます。

会計上の話であれば適切な部署や然るべき専門家に意見を確認する事もでき、その結果、会社としてもルールが整備されます。

ある意味この一連の流れは「問題解決力」の能力そのものでもあります。

この視点・思考が欠落していると、管理職になった際、組織を正しく導けなかったり、管理職でなかったとしても、課題に対して正しく向き合うことができないような状況に陥ります。

 

いわゆる、日本人に一番欠けている能力の一つでもあります。

 

もっと踏み込むと、そもそもコンピューター内部で正しく小数の計算がされているのか?という事も重要になります。

 

おそらく情報技術を学ぶ際、比較的早い段階でコンピュータの中では全ての数値を正しく表現してはいないのですよ、という話を聞くことになります。

それ以外にも、計算を効率よく行う為に、どういった事が行われていますよ、という話も聞くことになります。

 

その結果、小数と向き合う事となった場合、あれ、、、これって本当に正しい計算結果を導き出せているのだろうか、小数点1位の精度で計算するには、ただかけ算をしてはいけないのではないだろうか、という事に気づきます。

 

計算が終われば、次は、このデータはどの精度で保存すべきだろうか。

合計金額の小数第一位を保証する為には、明細データは小数第一位でよいのか、それともそれよりも精度をあげるべきなのだろうか・・・、等。

(いやいや、計算結果を保存するな、という指摘はそれとして・・・)

 

これまでの算数や数学では、正しく計算する為に、どのような式をどのように使い、どのように解を求めるか、という事が命題でした。

 

しかしこれが情報技術となると、それだけでは済まなくなります。

 

確かに、全ての小学生が将来コンピューターに関わる仕事を行うわけではありません。

ただ、ここで触れていることは、Excelでも同様の考え方であり、おそらく一生涯Excelのような表計算ソフトと関わらないというのは、なかなか難しい事でもあります。

 

そういったとき、例えば会社で集計処理をお願いされた時であったり、何か計算をする必要が出てきたときなど、この考え方ができるのとできないのでは大きな差がでてきます。

 

実際、前述の消費税の話は、私のグループの子会社で起きたトラブルで、請求金額の訂正や業務実績の修正など、結構大変なことになりました。

昨今は集計は簡単にされますし、合計金額の計算も式を設定すれば自動ででますからね、その式が正しいか、検算はなされているか、という視点が完全に欠けていた結果、私が別で計算した結果との乖離が著しくなり、原因を探ったところ、計算精度の誤差というおちであったわけです。

 

わかればなんという事はないし、それぞれの部分では、みんな考えればどうすべきかわかるんですよ。

でもそこに気付けない。

なぜそのような計算をしてはダメなのか、という事に気付けないんですね。

 

既に日本でも初等教育から情報処理教育を開始し、義務教育課程からそれらについて必須の科目とする事を進めています。

 

そういった取込も考えた場合、この問題は「9」と「9.0」は同じだろう!、ではなく、「9」とはいったいどういった数字だろうか、「9.0」とはいったいどういった数字だろうか、という視点を持ち、「その数字を扱うという事はどういったことだろうか」という視野へ広げ、そして「では今私はどうすべきなのか」というところまで考えられる、そういった子供を育てる事こそが、僕は今日本の教育現場で指導者が導くべき事ではないかと思います。

 

数学には数学の考え方、算数には算数の考え方があるとは思います。

それ自体は私は何れも否定はしません。

 

でも、子供達がこれから巣立った先で向き合う世界では、数学、算数ではなく、数値を扱うシチュエーション、そういったものとどう関わるのか、そういった事こそが非常に大事だと思います。

 

だからこそ、「9」と「9.0」が同じである事は当然としても、さらに一歩踏みこんで、「9.0」と答えるべき理由、それが語れる日本になって欲しいなぁ、と思いました。