
サイエンス作家 竹内 薫氏
数学は森羅万象を語る言語
人間社会の未来を予測する
数学は、ロケットを飛ばす計算、地震についての研究など幅広く使われ、森羅万象を語る言語といえます。数学が使いこなせるようになると、自然界や人間の活動について、より深く理解できるようになると思います。数学の本質に気付くと、数学そのものが面白くなってきます。子どもがゲームをやったり、サッカーをやったりして楽しいと感じる感覚と似ていますね。
人間や社会の活動は
広い意味で「数学」といえる
数学を学ぶ際に大切なことは何でしょうか。まず第一に、とにかく自分で問題を解いてみること。答えを出す過程を筋道立てて考えることで、論理力が磨かれていきます。それから最適化の努力。相矛盾する条件の中で、一番良い解を試行錯誤で探し出していく。これは私たちの普段の活動でも行っていることですね。いろいろな状況の中で、最大の効果を上げるにはどういう行動をとるべきか。人間の活動は広い意味での数学といえるでしょう。
さらに数学の力で大事なのは、未来がどうなるかを予測していくことです。例えば宇宙探査機を飛ばす際には、軌道を確実に予測する計算が必要になります。もし軌道を外れてしまったら探査機を見失うことになりますから。このように完璧な予測が必要になる場合もありますが、経済予測のように確率的にしか予想できないこともあります。でも予測ができれば、これからの対策がしっかりとれます。数学を駆使して未来を予測することで、社会活動が成り立っているともいえます。
数学と大きなつながりが
あるプログラミング
現代の生活に欠かせないインターネットは、基本的にプログラムの集まりです。プログラムは数学でいうところの関数に当たります。顧客情報を入力すると、承認されたという出力があり商品を発送する。これはXの値が決まると、Yの値が決まるという関数です。このような面で数学とプログラミングは大きなつながりを持っているといえます。
今はコンピューターを使えば、複雑な数学の答えも導き出せます。習得スピードは以前より速くなり、これまでできなかった学習もできるようになってきています。またプログラミングは、論理的に間違っているとエラーになるため、「これは動く」「これは動かない」と試行錯誤しながら肌感覚で学習を進められます。そのため、論理的思考力、問題解決能力をはじめとした、数学の力を高めるのに特に役に立つと感じています。
数学を肌で感じて
楽しくチャレンジ!
今回の広告特集は、数学を肌で感じながらチャレンジができるお題がそろっています。Web上では、数学と関わりの深いプログラム記述例も公開しています。本当の数学は強制されるのではなく、自分で楽しく探検していくものです。そのきっかけにしてもらえればうれしいですね。

監修:サイエンス作家 竹内 薫氏
1960年東京生まれ。東京大学教養学部教養学科、同理学部物理学科卒。マギル大学大学院博士課程修了(理学博士)。「猫好きサイエンス作家」としてテレビやラジオなどでも活躍。2016年からは先端プログラミング教育を行うYESインターナショナルスクール校長を務める。
私は30代から40代にかけてプログラミングで生計をたてていた「元プログラマー」です。それより以前は、大学院で物理学を研究していたのですが、毎日、素粒子が衝突する確率の計算プログラムばかり書いていました。そして今は、小学生と中学生に数学を活用するプログラミングを教えています。
そんな私ですが、すでに引退したプログラマーでもあり、もともとは数理研究のためのプログラムを書いていたせいもあり、いま流行りのPythonで大きな仕事をしたことはありません。
でも、そもそも、プログラマーという人種は、初めて触れるプログラミング言語であっても、試行錯誤で数時間ほどプログラムを書いて遊んでいると、だいたい「わかった」気になるのです。
私の周囲にいるプログラマーは、そもそもプログラミングの入門書を読んだことがない人ばかり。ネットにあるプログラムの真似をして、自分なりにいじくり回して改変して、あるとき、ふと気がつくと、ゼロから自分でコーディングをしている……それが自然なプログラミングの学び方だと思うのです。
というわけで、今回、ご紹介しているプログラムについては、最小限の解説しか書いていません。わからない命令があったら、自分で少し改変して動かしてみて、命令の意味を発見してほしいのです。もちろん、それでもわからなかったら、ネットで検索すればいいでしょう。
プログラミングの醍醐味は、遊びながら発見し続けるうちに、計算結果が出て、いろいろなものを制御したり、動かしたりできるところにあります。習うより慣れよ。そんな心構えで、気楽にプログラム解説を読んでいただければ幸いです。
また、今回紹介しているプログラムはすべて私が書いたものですが、ネットを調べると、ほとんど同じようなプログラムがたくさんみつかるはずです。基本的なプログラムは、誰が書いても、だいたい同じような形になりますが、こまかい点は異なるはずです。
ネットでいろいろな人のプログラムを見て、少しずつ、自分自身でゼロからプログラムが書けるように練習していってください。
そのためには、高校数学はもちろんのこと、大学レベルの数学の知識も必要になることが、今回あげたプログラムだけを見ても、おわかりになるでしょう。
そう、プログラミングの真髄は数学にあり。いまは、プログラムを通じて数学を学び、学んだ数学をプログラムに活かす時代なのです。みなさんがプログラミングと数学の「楽しさ」を忘れずに前進していくことを祈っています。
なお、絶対にpythonをやらなくてはいけない理由はありません。インターネットではscratchやWolfram Cloudなど、いろいろなプログラミング言語を学ぶことができます。まずは、自分と相性のいいプログラミング言語で遊んでみましょう。
CTCは、最先端のテクノロジーで社会のデジタル化を支えています。
ITの可能性に挑戦し、明日の世界を担う次世代を応援します。
