8÷2(2+2) の答えは何なのか?
みなさんの計算結果はいくつでしたか。なんでも、アメリカでは1になって、イギリスは16になるそうです。ネットの一部で論争中だそうですよ。このような解き方の順序が違うだけで答えが何通りにもなってしまう問題が数学ではよく出てきます。
ということで、生徒指導をしている立場で、なおかつ数学科出身の塾長が、それなりに決着をつけたいと思います。
日本の義務教育では「式の書き方が間違い」が正解
いきなりですみませんが、まずは結論から見ていきましょう。日本では
8÷2(2+2)=
という式を書いたら「意味不明」または「出題ミス」となります。
日本の教科書を見てみましょう。今回の式は、かけ算の「×」記号が省略されています。「×」記号の省略を初めて教わるのが中1ですから、中学1年生の教科書を見る必要があります。小学生までは必ず「×」の表示がされていましたね。
さて、日本では「かけ算」と「わり算」のどちらを優先して計算するかを決めていません。どちらも同じ優先順位です。「足し算や引き算よりも、かけ算やわり算を優先する」としか決めていないからです。そのため「もしもかけ算とわり算が混ざっていたら、書いてある順番に左から計算する」と教わります。
例えば
7+4×2
であれば、4×2をした後に7を足し算します。
答えは7+8で15になりますね。
だとすれば、
8÷2(2+2)=8÷2×(2+2)=4×(4)=16
と計算すれば良いではないか?
と思うかもしれません。しかし、話しはそんなに簡単ではありません。こんな風に考えた人もいたでしょう。
8÷2(2+2)=8÷2(4)=8÷8=1
つまり次の2通りの意見に分かれてしまいます。
- 2(2+2)は、わざわざ「×」を省略して書いてあるのだから、まとまり感がある。だから1つと見なして最初に2(2+2)=8と計算しておくべきだ! →答えは1になる
- 2(2+2)は、省略された「×」を書いて 2×(2+2) という意味だから、÷2の次に×(2+2)を計算すべきだ! →答えは16になる
どちらの意見も正しそうです。ですから、もっと根本的に、次のことを確認しておく必要があります。
そもそも文字式でしか「×」や「÷」を省略しない
かけ算の記号「×」や割り算の記号「÷」を省略して書くのは、文字式だけです。
例えば
2xyというのは2×x×yですよね。
中学1年生の教科書を見れば明確です。それより前の「正の数、負の数」の計算では、これらを省略していません。逆に、文字式に値を代入する時は、「×」や「÷」やカッコを補ってから計算するように教わります。
先ほどの2xyにx=3,y=2を代入すると、2×3×2=12となります。
このように、そもそも文字を使わない式、数字だけの式では「×」や「÷」を省略しません。
これが日本の教科書での教え方です。この教え方は数学的に考えて、とても合理的で誤解が少ないです。あらためて教科書の完成度の高さに感心してしまいます。文字式の時しか省略しないのですから誤解がありません。それなら、わざわざ「×」と「÷」の優先順位を決める必要が無いわけです。
今回ネットでパズった 8÷2(2+2) は文字式ではありません。もしも「×」や「÷」やカッコを省略せず、日本式に書いたとしたら、この式はどんな式だったのでしょうか。
- 8÷2(2+2) は 8÷2×(2+2) のつもりだった?
- 8÷2(2+2) は 8÷{2×(2+2)} のつもりだった?
もはや、この式を作った人にしかわかりません。もしも、この問題を作った人が「そこまで考えてなかった。」のであれば、出題ミスということになります。
まとめ「数式は文化に依存しない形で書くべき」
ネット上の論争では、アメリカではどう教わる、イギリスではどう教わる、という話になっています。中には「暗黙の乗法」とかいう文化論まで出る始末。いかにも「文化」的な扱いですね。
恥ずかしながら「暗黙の乗法」なんて塾長は初耳です。
そもそも数学は世界共通言語です。ましてや自然科学を正確に記述するために使われます。ですから数式の書き方を文化で語るのは無理があります。あくまでも数学に限って言えば、文化の違いで誤解が生じるくらいなら、文化の方を訂正するべきだと先生は思います。
イギリス式だのアメリカ式だの、計算のルールを増やして教えれば、地域差が生じます。ですから、最小限のルールで解釈されても誤解されないように式を書く方が正しいと思います。
ですから他人に式を見せる前に、「誰が見ても自分が思った計算の順序で解釈してもらえる」ように式をまとめておく必要があります。
ちなみに、この話を考えていたら、国語やプログラミングでも同じだなぁと思いました。
あとがき 国語やプログラミングでも同じ!
たとえば次の日本語の場合。どちらが「私」の意図をわかり易く記述しているでしょうか?
- 私はあなたに「写真を撮って欲しくないですか?」と言いました。
- 「あなたの写真を撮りましょうか?」と私はあなたに言いました。
1のような言い方をしがちな人は、けっこう人付き合いで苦労しそうですね。
また、次のような衝突も日常茶飯事です。私はこの種のトラブルを名付けて「普通論争」と揶揄しています。
AさんとBさんは、教室で「掃除が終わったら一緒に帰ろうね。」と約束しました。しかし2人は待ち合わせに失敗して一緒に帰ることができませんでした。翌日、2人は普通論争でケンカしました。
- 「掃除が終わったら、約束をした教室に戻ってくるのが普通でしょ。」
- 「一緒に帰るのだから、下駄箱のところで待っているのが普通でしょ。」
この先、2人が上手くやっていくためには「普通」という暗黙のルールをお互いに取っ払う必要があるでしょう。
プログラミングでも同じです。
例えば3つのタイマーを使うゲームを作ったとします。3つのタイマーを切り替えて使えるように、タイマーに1,2,3と番号を付けて、それを「タイマーの数」という名前の変数で管理しました。
しばらくして、そのプログラムに手を加えて使ったら、全く動かなくなってしまいました。「タイマーの数」をタイマーにセットする秒数のことだと勘違いしたからです。「タイマーの数」に60[秒]だの30[秒]だのを入れても、プログラムは60[番目]のタイマーや30[番目]のタイマーを探しに行きます。もちろん、そんな番号のタイマーは存在しないので動かなくなりました。
この例では、そもそも変数の名前を「タイマー番号」とか「今使っているタイマー」などとしておくべきでした。
私がIT業界でプログラミングをしていたころ、職場では
「3日後の自分は他人だ!」
という教訓がありました。暗黙のルールを勝手に決めると、決めた本人でさえ3日後には忘れてしまい、それがトラブルの原因になる、という意味です。
また逆に、後々のトラブルを避けるため、誰が読んでもわかるプログラムを書くか、決めたことは仕様書にしっかり明記しておけ、という意味もあります。
誰もが知っているルール以外はできるだけ作らない、使わない。逆にルールを作ってしまったら公式の文書にして関係者のだれもが知っている状態にする。そいういうのが常識でした。
さて、簡単な計算式の話しから、えらい遠くまで脱線して来てしまいました。もとの線路がはるか遠くです。
とにかく、できるだけ自分の文化を人に押し付けない。そういう真に自立した人間でありたいものですね。