6÷2(1+2)=?

こないだFacebookのクエスチョンで流れてました、6÷2(1+2)=?
答えはでしょうか?でしょうか?
これはTwitterでも色々と物議を醸し出しました。
さきにクエスチョンの結果を言いますと
と答えた人は1,725,859人
と答えた人は2,420,743人
現実の世界でこんな式を使うことは一部の方のみなのであまり深く考える必要はありませんが、プログラマーさんにはご一考願いたいものです。
要はカッコを明示しろという話なんです。
これは、割り算と掛け算とカッコの使い方を数学の世界ではどう解釈してコンピュータの世界はどう解釈するのかという意地悪問題です。
上記の通り解釈は人によって違います。もちろん、コンピュータ上での解釈は1つです。カッコが最優先で掛け算と割り算は左が優先です。
でも、それはあくまでもコンピュータの解釈です。数学の世界ではカッコ少し意味が変わってきます。
もちろん優先して計算しなさいという意味もありますが、カッコの前に数字が付く場合はカッコ内の数字に掛け算を行うという展開も考えなければいけません。
このあたりきちんと明示しないと、実はバグ要因となります。
ですので、プログラマ的正解は
(6÷2)(1+2)=?
または
6÷(2(1+2))=?
と記述すべき
です。
おおちゃくはバグのもと。それをしっかりと認識してプログラムを組みましょう。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です