48÷2(9+3)=?...
国内外の Twitter や Facebook, ブログ等において, この 4 月から「『48÷2(9+3)=?』や同様の『6÷2(1+2)=?』の答えは いくつか?」といった話題の議論が行われています。 かなり収拾の付かない状況となっている上に興味深い話題でもありますので, ここのところ追いかけている訳なのですが…。
大元は, 例えば「48/2(9+3)=?」 (以下, 基本的に '÷' 記号を '/' で表記。) のほうでいえば, 「『48/2(9+3)=』の計算を (数式どおりの入力による計算が可能な) 複数の関数電卓で行ったら, 288 と 2 という異なる計算結果が得られた。 一体どちらが正しいのか?」といった単純な問題提起です。 関数電卓や数式処理, プログラミング言語には「それが定めている明確な書式と優先順位」が存在しますので, それに従って解釈し答えを弾き出しているだけなのですけれど…。
なので, 「○×の電卓では」とか「Google 計算機では」といった主張自体は無意味です。 電卓や数式処理システムは, 数学や算数の論理や規則とは全く別次元の決まりによって解釈しているだけですから。 で, 混同している方は置いておいて, その辺りを踏まえた上で「では, 数学 (算数) としての本来の解釈 (計算結果) は どうなのか?」といった方面に議論が移っているわけです。
「数学」という学問は「(未解決なものは別として) 規則等や解釈方法が明確に定められている」と一般に思われていますし, また実際そうなのだと私も思います。 が, この件に関しては, 日本だろうがアメリカだろうが欧州だろうが, 対立する主張が多数派でも少数派でもなく拮抗している状況なのです。
問題となっているのは, 「2 項演算子 '÷' の (48 に対する) 除数は 2 と 2(9+3) の どちらなのか?」といった点です。 別の見方をすれば「(9+3) に掛けられるのは 2 と 48/2 の どちらなのか?」となります。
これ, アメリカや欧州で演算の優先順位を覚える際に行われている語呂合わせ (PEMDAS や BIDMAS 等。) のせいで, 国外では さらに話が ややこしくなっていますので, その辺りは放っておいて, 国内に重きをおきます。 (^^;)
あ, PEMDAS や BIDMAS は乗算 (Multiplication), 除算 (Division) 等の頭文字を優先順位どおり並べて頭字語にしたものです。 PEMDAS なら:
- Parentheses : ("()" や "[]" などの括弧。)
- Exponents : 累乗 (根を含む。)
- Multiplication : 乗算
- Division : 除算
- Addition : 加算
- Subtraction : 減算
ですし, BIDMAS なら:
- Brackets : ("()" や "[]" などの括弧。)
- Index : 累乗 (根を含む。)
- Division : 除算
- Multiplication : 乗算
- Addition : 加算
- Subtraction : 減算
です。 (却って誤解を招きますので, 無順序リストで一覧しています。)
で, 本来なら「乗算と除算が同じ優先度」, 「加算と減算が同じ優先度」となるのですが, あちらでは それを異なる優先度として覚えて (若しくは習って。) しまっているケースがあるのでした。 (^^;;
Revenons à nos moutons. (閑話休題。 元ネタは『パトラン先生』の「我々の羊の話に戻ろう」という台詞。)
2(9+3) のような いわゆる Implied Multiplication (暗黙の乗算。) の表記法は, 2x や 2y といった形で中学 1 年くらいで習っていると思います。 「その部分は ほかよりも優先順位が高い」と教わった方も多いことでしょう。 なので, 48/2a などと書かれていれば, 国内では a に 12 を代入した際の結果として 2 を回答する方が多数を占めると思います。 (48/2a → 48/(2a)。)
が, ここで困るのが「『数値同士の Implied Multiplication』の際の優先順位を示した書籍等が無い (少なくともソース元として挙がっていない。)」のと, 「Implied Multiplication が有効となるのは変数項の場合だけ」と習ったケースが少なからず存在する点です。 さらに, 数学では '÷' を (普通は) 使いませんから, 「問題を数学として考えるのか算数として考えるのか?」といった意見まで出てきて, 話がややこしくなっています。
海の向こうで示された代数学の書籍でも, 3+2(5)=13 のような式は載っているものの, 6/2(5)=? といった式は載っていないのでした。 3+2(5)=13 では「2(5) は 2×5を意味する」以上の情報ではなく, 今回の件には全く無力…残念。 (^^;)
個人的には 48/2a → 48/(2a) と同様に, 48/2(9+3) → 48/[2(9+3)] と解釈したいところなのですが, 「暗黙の乗算は変数が含まれている際のみ使用」と教わったクチなので, 恩師を尊重して 48/2(9+3)=288 を主張しておきます。 プログラミング言語や数式処理システムでは その解釈を行うケースが多いということで, 都合も良いことですし。 (笑)
ちなみに, プログラマーとしては論理的な解釈は どうでも良かったりします。 このような「怪しい式」については, 脳内自動補正で「(48/2)*(9+3)」とか「48/(2*(9+3))」とか記述しますから。 何しろ, 言語によっては「演算子が 20 個以上あって, 優先順位も 15 以上…」なんてケースがあったりしますので, 単純な式でも怪しい箇所は括弧で括る癖がついているのです。
いや, いろいろ意見があって面白いです。 「数学としては それではいかんだろ!!」とは思いますけれど。
この混乱ぶりから言えそうなのは, 「どの国でも, 2(5) のような数値同士の Implied Multiplication については, 明確な優先順位が (一般的なものとしては) 規定されていない」という点ですね。 数学を専攻している学生どころか, 教えている側ですら意見が異なっているくらいですから。 もう何が何だか…。 業界では この方面は禁忌なのかしら? 権威が登場することもなければ, 権威が言及したソースが挙がることもありませんので。
Jun.1,2011 追記
どうやら国内では「48/2(9+3) → 48/[2(9+3)] → 2」説で落ち着いたようですね。 もっとも, それを (確実に) 裏付けるソースが示されたわけではありませんけれど…。 (ソースは示されているが, それが決定打とならない。)
|