マイナスとマイナス

最近、気になっている書籍に「AI vs. 教科書が読めない子どもたち 」があります。AI開発で難しいのは「いかにしてAIに文章を読解させるのか」という点らしく、これを研究するために実際の中高生を中心に読解テストを実施した経緯と結果についての解説がされているらしいので読んでみたいと考えています。

どうやら、多くの中高生は問題文をきちんと読解しないで、過去に解いたことがある似たような問題から類推して問題を自分勝手に解釈して解答を作ってしまうことが多くあるようです。「問題を勘違いしていた」というのは中高生に限らず多いはずで、人間らしさ、となってくる気がしますが、そのあたりをAIはどう対応していくのか、興味がありますよね?

さて、そう思っていたところで、Twitterで@spicagraphさんが「マイナスとマイナスでなんでプラスになるの」を主題としたマンガをツイートしていました。このマンガの出だしは次のセリフから始まります。

数学というか
算数苦手…
マイナスとマイナスで
なんでプラスになるの

この文を初めて読んだら、皆さんはどう解釈しますか? 「マイナスとマイナスでなんでプラスになるの」は数学が苦手でなくても普通に疑問に思いますよね? 「-1 + -1 = -2」ですし、一般化したら「-m + -n = -(m+n) ただしm>0かつn>0」ですから「マイナスとマイナスはマイナス」ですよね。そうすると、この疑問はあたりまえで「プラスになる場合は何?」となり、一瞬混乱するわけです。

勘の良い人はここで『「マイナスとマイナス」は「-(-1)」のことなのかな。つまり「-1 × -1」のことなのかな。この結果は +1 になるけど、そのことを言っているのかな』と考えます。それで、マンガの続きを読むと「-(-1)」のことだというのが決定的になります。マンガの作者である@spicagraphさんにも確認をしたところ、『「-1-(-1)」のような引き算を想定していた』とのこと。

自分は『マイナスとマイナスの演算でプラスになるものは乗算だし、「-1 × -1 はなぜ +1 になるのか」というのは説明が難しくて疑問に思う人が多いのはわかるなぁ』と考えてマンガの続きを読んでいました。

ということで、「自分と同じように混乱した人はいないのかなぁ」と思い、それでコメントとして「マイナスとマイナスはマイナスでは… と突っ込んでみる。」とリツイートしてみました。その結果、「マイナスとマイナス」というのは「-(-1)」を想定していて、ここに出てくるマイナス記号が並んでいるのを「マイナスとマイナス」と表現したということがわかりました。そう言われると「マイナスとマイナス」と表現したくなる気持ちもわかります。

個人的には下記に直した方が誤解する人を減らせる気がしています。

数学というか
算数苦手…
マイナスのマイナスで
なんでプラスになるの

もしくは

数学というか
算数苦手…
マイナスとマイナスの掛け算で
なんでプラスになるの

こういった表現なら、「-(-1)」や「-1 × -1」のことが話題になっていると明確になるはずです。「マイナスのマイナス」の方は曖昧なのですが、今回のような「-(-1)」のような式については「マイナスとマイナス」よりは使われている表現だと考えています。

ただ、ここで、「数学というか 算数苦手…」という枕詞が効いてくるのですね。発言者が算数苦手だということを表現したいなら、あえて誤解の多い表現である「マイナスとマイナスでなんでプラスになるの」というセリフにしておいた方が効果的です。絶妙(褒めてます)。

ちなみに「マイナスとマイナスはマイナスでは… と突っ込んでみる。」に対して、いくつかリツイートをもらったのですがほとんどの人が「掛け算のことだとわかる」という内容のメッセージでした。逆に自分が思った『「マイナスのマイナス」と書いた方がわかりやすい』のような意見はありませんでした。

このあたり、AIに『「マイナスとマイナスでプラス」は真か』と質問をしたら「質問が曖昧で真偽は判定できません」となりそうな気がしています。それとも人工知能なのだから、きちんと「-(-1)」のことを想定して『-(-1)のような場合の「マイナスとマイナス」なら「マイナスとマイナスでプラス」は真』のような回答をしてくれるようになるのでしょうか。

いずれにせよ、今回のマンガのセリフは個人的にいろいろと感じるところが多く、ブログ記事にしてみようと考えました。この短いセリフに対して、こんなに書くことがあるなんて、面白いと思いませんか。

ちなみに、このマンガがツイートされた後に、数学ガールで有名な結城浩さんも「マイナス×マイナス=プラス」のツイートをしています。

さらにさらに、今回は対象範囲が「数学、算数」なので誤解はないはずですがプログラミング言語も含まれた世界で話をしている場合は、「マイナスとマイナス」だけだと他の解釈がありえます。たとえばプログラミング言語JavaScriptでは「--n」のように「マイナスとマイナス」を連続して変数の前において記述することができます。この場合は「nから1を減算する」という処理を書いたことになります。nが1より大きければ「--n」はプラスですし、nが0以下なら「--n」はマイナスです。

同じカテゴリの記事: General