プログラミングには必要不可欠な数学をpythonを使いながら学ぼう!
「数学」と聞いただけで拒否反応を起こす人は沢山いるでしょう。算数や数学などは「むずかしい」というイメージがいつの間にかついてしまうものです。しかしながら、数学は知れば知るほどとても便利なものです。プログラミング教育などで良く言われる「論理的思考」とは「数学的思考」も含まれているため、プログラミングを行う際にも数学の知識があるのとないのでは大きく変わってきます。
今回はこれから必要とされるプログラミングや数学的な思考を身に着けるために、ラズベリーパイを使ってプログラミング言語pythonと数学を同時に学んでしまおうという欲張りな企画です。
数学と言ってもすべての分野を網羅するのは難しいため、コンピュータに必要な数学分野から入り、高校生くらいまでの数学にたどり着けるようにしたいとおもいます。
数学が苦手な方やプログラミングに挫折した人がなんとか理解できるよう難しい言葉はなるべくかみ砕いて小中学生でも理解できるように進めます。
「同時に学ぶPythonと数学!」をスタートするのに必要なもの
必要なものは以下の2つ。ラズベリーパイを利用してPythonでコードを書きながら数学を学んでいきましょう。
- セットアップ完了したラズベリーパイ
※今回はRaspberry Pi 4B (4GB) を使います。 - インターネット接続
RaspberryPiでPythonを使う基本
早速ですが、ラズベリーパイでPythonを使う基本操作に入っていきたいと思います。プログラミングも数学も基本の基本から学んでいく為、まずはPythonもシェルからスタートしたいと思います。
シェルはターミナルと呼ばれるアプリケーションを起動すると表示されるコマンドを入力して操作する画面になります。
ラズベリーパイやLinuxを使っていればお馴染みの画面ですね。
ではまず、今回はプログラミングしながら数学も学ぶという企画です。このプログラミングに使う言語「Python」について、調べてみましょう。
コマンドに
$ python – -version
と入力してPythonのバージョンを確認します。Pythonには2系と3系というそれぞれのバージョンがあり、pythonだけで入力すると2系が表示されます。( version の前に -(ハイフン)を2個連続付けないとエラーになります。)
$ python3 – -version
と入力するとPython3系のバージョンが表示されます。
間違えて入力すると、>>>の記号の画面になってしまいますので、この場合はpythonが起動してしまっていますので、キーボードの「Ctrl」を押したまま「D」キーを押して一旦終了させてください。
Pythonを起動、簡単な四則算をやってみる
まずはPythonを起動して簡単な四則算をやってみましょう。
$python
と入力するとPythonが起動して>>>の記号でプログラムの入力待ち状態になります。
コマンド上にpythonだけ入力したのでバージョン2系が起動しています。ここではPython 2.7.16というバージョンを使っている事がわかります。
では早速四則算をやっていきます。数学の記号とPythonの記号はちょっと違うので、以下に演算子の表記をまとめました。
演算 | 算数・数学での記号 | Pythonでの演算子 |
足し算 | + | + |
ひき算 | – | – |
かけ算 | × | * |
わり算 | ÷ | / |
では全部やってみましょう。まずはたし算「12+29」と入力してEnterを押すと以下のように41という数字を返してきます。
>>> 12+29
41
同様にひき算、かけ算、わり算をやってみましょう。
こんな感じで計算ができます。答えが一瞬で返ってきますが、これは簡単な計算だからです。より高度な計算をさせると答えが返ってくるのに時間がかかります。
四則算をやってみましたが、ちょっとつまらないですよね。「電卓でいいじゃん!」となってしまいます。Pythonの教科書とかではこういった「つまらない」のが続くので、ここではちょっとコンピュータらしい計算をしてみましょう。ラズパイにちょっと時間がかかる計算をさせて少しコンピュータを困らせることもしましょう。
膨大な量の計算をしてこそコンピュータの計算!
電卓はとても便利なものです。携帯電話などにもついていていつでも計算できますが、繰り返し沢山の計算をしなければならない場合はコンピュータに任せるのが一番です。
リストとsum関数
膨大な計算をさせるために、まず数字の集まりを作って、それらを計算させます。
まずは数字のリストを作って、それを変数と呼ばれる入れ物に入れておきます。ここでは変数を「n」としてここに数字のリストを作ります。
>>> n = [ 1,2,3,4,5 ]
と入力します。こうすることで「n」という文字の中には1~5までの数字が並んでいるという意味になります。カッコの形を間違えないように半角で入力してください。
次に並んでいる数字を順番に足してみましょう。「合計」という意味をもつ「sum」という関数に「n」という変数をたわすと、nの中身を順番に足してくれます。
>>> sum = (n)
「15」という答えが出ました。
では、もっと膨大な量の計算をしていきたいのですが、このリストを打ち込んで行くようでは電卓で計算する場合とスピードが変わりません。例えば1から1億までを順番に足してといわれた場合、リストに n = [ 1,2,3,4,,,,,,,,100,000,000] と入れて行ったのでは大変です。
でもpythonにはとても便利なrange関数と言うのがあって、範囲を指定するとその間の数字を並べてくれるのです。書式がいくつかあるので見ていきましょう。
range関数を使う
range は「範囲」という意味になります。この関数に数字を渡してあげると「0」から数えて何番目までを表示してくれます。例えば5を指定すると0から5個の数字ですから「0,1,2,3,4」とこの5つという事になります。以下のようにタイプしてみましょう。
>>> n = range(5)
とすれば、n = [0,1,2,3,4] と同じことになります。変数「n」に本当にリストが入ったか表示してみたいと思います。ここで「n」だけタイプすると、nの中にはrange関数が入っているという事で
range(0, 5)
と表示されるはずです。先頭にゼロが付いたのはこの関数の正規の書き方で、「0から5個目まで」という意味になります。
print(list(n))で数字のリストを表示
リストで表示させるためにはprint関数を使います。このままprint(n)とやってしまうと「変数nの中身を表示してください」という先ほどと同じ結果になってしまうため、「変数nの中身をリストとして表示してください」という意味でprint(list(n)とします。
>>> print(list(n))
[ 0, 1, 2, 3, 4]
となります。
実践、膨大な量の計算をラズベリーパイにさせる
早くもPythonの関数をいくつか覚えました。このrange関数を使えば、1から1億までの計算をさせるなんて簡単ですね。先ほどの四則算の計算の時にはあっという間に計算結果が表示されましたが、1億までとなるとさすがにコンピュータも少し考えます。
1から1億までの計算
早速やってみましょう。まずは、1から1億までのリストを作りますね。変数はさっきと同じ「n」にしましょう。1億は「100000000」(ゼロ8個)です。でも0から1億番目は「99999999」です。なので1億まで足すには「100000001」と最後に1つ足さないといけません。また今回は0を足しても意味ないので、1から1億までという書き方をしましょう。以下のリストを作るだけでも少し時間がかかります。処理が終わらないと次の「>>>」が表示されないので、以下のプログラムを入力しEnterを押したら気を付けてみてみましょう。
>>> n = range(1, 100000001)
これで、1から1億までの範囲ができました。これをsum関数に渡してあげると1から一億までのたし算を行います。
計算結果は「5,000,000,050,000,000」となります。数字の最後に「L」が付いているのは、Python2系では、長い数字の後ろに「L」が付きます。Python3ではつきません。
つまり1から1億までたし算をしていくと、五千兆五千万という結果になるということです。
range関数では範囲やステップも設定可能
range関数について補足します。数字の範囲は途中からでも設定が可能です。例えば
>>> n = range( 10, 101) とするとリスト表示は
[ 10,11,12,13,,,,,,,,,21,,,,,,,99,100] という形で、10から100までの数字が表示されます。
さらに、リストに3つ目の数字を指定するとそれは「ステップ」となり、たとえば10を指定すると10ずつという形になります。
>>> n = range(10,101,10)
print(list(n))で表示させたそれぞれの結果は以下の通りです。
Pythonプログラムを終了する場合
通常のシェルでは「$」マークが表示されていますが、Pythonプログラムが起動しているシェルは「>>>」という記号になっています。Pythonを終了させるには、キーボードの「Ctrl」を押したまま「D」キーを押すと通常のシェルに戻ります。
まとめ
今回はPythonを使って初歩の計算、膨大な量の繰り返し計算などを学びました。そのために必要な関数もいくつか学びましたが、基本となる「変数」という考え方はプログラミングの基本です。変数には数字や文字、リストなど様々なものが入ります。今回は数字のリストを入れましたが、今後もこの変数という考え方は沢山出てきます。
もっと大きな計算をさせたり、Python3で計算させると膨大な量の計算の後に「L」が表示されない事なども確認しておきましょう。