我的看法是兩個演譯都不能說錯。
如果我一看到這個算式,我會認為是 48 ÷ [2(9+3)] = 2。但如果你考慮到 2(9+3) 的定義的話,它的確是等於 2×(9+3),即 2(9+3) 和 2×(9+3) 是完全相同的。
所以問題的關鍵是 2(9+3) 應否被視為 (2x(9+3)) 而非 2x(9+3)。由於高等數學裡很少用到乘號和除號,因此這個似乎沒有嚴格定義(也許有但我不知道吧),於是這件事變得有點約定俗成。
在 「習俗」上,我想很多人都會同意「不寫出來的乘號」的運算次序應該比「除號」為高,所以 48 ÷ 2 (9+3) = 48 ÷ [2(9+3)] = 2 至少在「常理」上是正確的。但就我所知,數學上的確沒有這個規定,因此如果認為 48 ÷ 2 (9+3) = 48 ÷ 2 x (9+3) = 288 的話,我也找不到任何理由認為有錯。
故此我的結論是 48 ÷ 2 (9+3) 這種寫法不好,還是用分數或加個括號避免混淆吧。
題外話一:
語意上出現混淆(ambiguity)並不罕見,除了在數學外,中文和英文也有很多例子(數學也是一種語文)。例如:
「曼聯戰敗了阿仙奴獲得了冠軍」
題外話二:
數學名詞雖然有嚴謹的定義,但「約定俗成」的例子其實也很多:
如果我一看到這個算式,我會認為是 48 ÷ [2(9+3)] = 2。但如果你考慮到 2(9+3) 的定義的話,它的確是等於 2×(9+3),即 2(9+3) 和 2×(9+3) 是完全相同的。
所以問題的關鍵是 2(9+3) 應否被視為 (2x(9+3)) 而非 2x(9+3)。由於高等數學裡很少用到乘號和除號,因此這個似乎沒有嚴格定義(也許有但我不知道吧),於是這件事變得有點約定俗成。
在 「習俗」上,我想很多人都會同意「不寫出來的乘號」的運算次序應該比「除號」為高,所以 48 ÷ 2 (9+3) = 48 ÷ [2(9+3)] = 2 至少在「常理」上是正確的。但就我所知,數學上的確沒有這個規定,因此如果認為 48 ÷ 2 (9+3) = 48 ÷ 2 x (9+3) = 288 的話,我也找不到任何理由認為有錯。
故此我的結論是 48 ÷ 2 (9+3) 這種寫法不好,還是用分數或加個括號避免混淆吧。
題外話一:
語意上出現混淆(ambiguity)並不罕見,除了在數學外,中文和英文也有很多例子(數學也是一種語文)。例如:
「曼聯戰敗了阿仙奴獲得了冠軍」
- 曼聯戰敗了(輸了),阿仙奴獲得冠軍?
- 曼聯戰敗了阿仙奴(曼聯擊敗阿仙奴),所以曼聯獲得冠軍?
- Someone who knows (one of Alan and Billy) is here?
- (Someone who knows Alan) or (Billy himself) is here?
題外話二:
數學名詞雖然有嚴謹的定義,但「約定俗成」的例子其實也很多:
- ab2 是指 a(b2) 而非 (ab)2,但 cm2 卻是指 (cm)2,即 1 cm2 = (0.01 m)2 而不是 0.01(m2)。
- sin 2 a 是指 (sin 2) a 還是 sin(2a)?絕大多數人接受是 sin(2a),但 sin a cos b 是指 (sin a)(cos b) 還是 sin (a cos b) 呢?絕大多數人會認為是 (sin a)(cos b)。兩者看來是有點矛盾的,但這是「俗成」了。
4 則留言:
這篇文章令我想到一個電腦科學的問題。給定一個 formal language ,存不存在一個演算法,可以證明或否證以下陳述:
「此語言的任何句子都不會有 ambiguity」?
如果是否證的話,這個算法可否找出 counterexamples ?
有趣有趣...
我不懂電腦科學,但有一點不太明白,在一個 formal language 中應該所有運算次序都是 well-defined 的,為何會有 ambiguity?(「sin a cos b」這種 language 就是「不夠 formal」所以才有 ambiguity。)可以舉一個例子嗎?
我都沒怎麼研究computer science。是我沒仔細讀過"formal language"的定義……我原來想問的就是「不夠 formal」的language。
(再看一些資料)我問的問題,在應用層面好像是跟 compiler design 有關的吧。
張貼留言