最近的網路關於6÷2(2+1)算式的討論最近很是火熱,大家都在認為糾結等於9還是1的答案上發生分歧.
結果晚上和@Kingsamchen以及幾位程式員討論,如下:
這個算子本來就是錯誤的寫法。2和括號之間沒有了運算子,我們自以為是省略了乘號運算子,但是這是錯誤的寫法。只有在數字和字母的時候才可以省略乘號運算子的書寫。比如如下:
3*a 可以省略乘3a.
而不允許把2*(2+1)省略寫成2(2+1)!
這一切的爭論都是由這個省略產生的,如果沒有了這個省略,那麼我們的爭論就可以少很多.
因為這次省略,我們可以這樣理解:
理解A:2(2+1)都是這個除法的除數,也就是這個分式的分母,而需要保持分母優先的原則,現在算式變成了:
6÷(2*(2+1))
也就是等於1.
理解B:只有2是除數,也就是這樣:
6÷2*(2+1)
有人開始爭論糾結理解A正確還是理解B正確,我所表達的是,這無法確定也沒有意義爭論!因為這個算式的書寫本來就是錯誤的,而且就是因為這個錯誤的省略了乘號運算子的寫法導致了歧義的發生。所以這個爭論是沒有結果的.


近期迴響