【小学校算数 × プログラミング】Pythonで「2桁×1桁の掛け算の暗算」を理解しよう!

この記事では、分配法則を使って2桁と1桁の掛算を暗算するための思考手順をPythonを使ってプログラミングする方法を紹介します。

分配法則は算数の基本的な公式の一つであり、この公式を利用することで、掛算の計算を簡単に行うことができます。まずは分配法則について簡潔に説明し、その後にPythonを使用した2桁×1桁のサンプルコードを紹介します。

分配法則とは

分配法則とは、数学の基本的な法則の1つであり、次のように表されます。

(a + b) × c = a × c + b × c

c × (a + b) = c × a + c × b

cをカッコ内のaとbのどちらにも掛けて足す計算方法です。例えば、23 × 4という計算を考えてみます。この場合、以下のように分配法則を使って計算することができます。

23 × 4 = (20 + 3) × 4 = 20 × 4 + 3 × 4 = 80 + 12 = 92

このように、分配法則を使うことで、2桁と1桁の掛け算を暗算で解くことができます。

ちなみに 23 × 4 を筆算で計算すると、次のように表すことができ、分配法則を用いていることがわかります。

二桁×一桁の暗算を練習するアプリをFlask(PythonのWebアプリケーションフレームワーク)で作ってみましたのでお試しください。
・問題の数字はランダムに表示されます。
・二桁の数字は10の倍数にならないように調整しています。
・制限時間は15秒です。
・5秒後にヒントが表示され、10秒後にさらに次のヒントが表示されます。

二桁×一桁の暗算の練習アプリ

シンプルなアプリですが、この仕組みを動作させるだけで、HTMLをはじめFlaskやPython、Javascriptなど盛りだくさんの構成になっています。ここではプログラムの詳細を説明しきれないので、別の機会に改めて紹介したいと思います。

Pyhonを使った2桁×1桁のサンプルコード

次のコードは、分配法則を使って2桁×1桁の計算をするPythonのコード例です。

このコードでは、入力された2桁の数を10の倍数の数と1の位の数に分け、それぞれに1桁の数を掛け、両方の和をとる形で、分配法則を使った計算をしています。

# 2桁と1桁の数を分配法則を用いて計算したサンプルコード

# 2桁と1桁の数の入力
num2=input("2桁の数字を入力してください。")
num1=int(input("1桁の数字を入力してください。"))

# 2桁の数を10の倍数の数と1の位の数に分割
num2_tens = int((num2)[0] + "0")
num2_ones = int((num2)[1])
print("2桁の数字を分割した10の倍数の数=",num2_tens)
print("2桁の数字を分割した1の位の数=",num2_ones)

# 分配法則を用いて計算
result = num2_tens * num1 + num2_ones * num1
print("分配法則の式:",num2_tens," × ",num1," + ",num2_ones," × ",num1)

# 結果の表示
print("計算結果=",result)

このコードのポイントは、8行目と9行目で入力された2桁の数字を10の倍数の数字と1の位の数字に分割する処理部分です。

例えば、23という数字を人が10の倍数の数字と1の位の数字に分割するのであれば、直感的に20と3であるとわかります。ところがコンピューターにこれをやらせる場合、直感という人の思考の手順をプログラミングで実現することはなかなか難しいことです。

num2_tens = num2 // 10」のように整数除算を用いると10の位が求められますし、「num2_ones = num2 % 10」のように余剰(余り)を用いれば1の位が求められます。

そのような演算子を用いることで2桁の数字は簡単に分割することが出来ますが、ここでは、より直感的な手法に近い方法を採用して数字を10の倍数と1の位の数に分割しています。

具体的には、入力された2桁の文字列(数字)の最初の文字(10の位:(num2)[0])と2番目の文字(1の位:(num2)[1])を取得し、最初の文字には「0」を付加しています。そして、それぞれの文字を整数に変換して、10の倍数と1の位の数字を得ています。

例えば、文字列として「23」が与えられた場合、最初の文字「2」を10の位とし、2番目の文字「3」を1の位とします。最初の文字には「0」を付加して「20」とし、それぞれを整数に変換して、10の倍数と1の位の数字としています。

以下の図は「Google Colab」でプログラムを実行した結果です。

まとめ

この記事では、分配法則を使って2桁×1桁の暗算をするため方法について、Pythonのプログラミングを通して紹介しました。思考の手順を整理し、プログラミングを行うことで理解が深まると思います。

2桁×1桁の暗算ができるようになると割り算の筆算で商の見当をつけるときに役立ちます。ぜひ、この記事を参考にして、2桁×1桁の暗算をスムーズに行えるスキルを身につけてみてください。

【Pythonの入門におすすめの書籍3選】