數學英文

運算次序

像加減乘除次方與方根這些運算稱為 operations, 它們的符號稱為 operators,將它們寫成一條運算的紀錄或指令, 稱為算術表達式或算式:arithmetic expressions。 算式原則上就像一般英文:從左讀到右,例如 \(1+2\times3\), 但是計算的順序卻未必從左到右,例如前面的算式要先算 \(2\times3\) 得到 6, 再算 \(1+6\) 得到 7,這是因為數學規定了運算次序:order of operations 或 operator precedence。

在一條算式裡,如果有括號就要先算括號內的算式。 所謂括號就是小括號 (parentheses),又稱為括弧或圓括號 (round brackets)。 如果括號有內外層次 (nested parentheses),要依從內而外的順序: work outward from the innermost set of parentheses。 不管有幾層括號,程式語言 (programming language) 一律寫小括號, 但是初等數學文本,也習慣將小括號寫在最內層,向外一層使用中括號 (brackets), 又稱為方括號 (square brackets),再外層使用大括號 (braces),又稱為 curly brackets。例如 \[(((32-16)\div(2\times2))-(4-8))+7 =\{[(32-16)\div(2\times2)]-(4-8)\}+7=15\] 括號必須成對出現 (in pairs),前面的稱為左括號,後面的稱為右括號 (left parenthesis and right parenthesis)。 括號不成對造成的錯誤稱為 unbalanced parentheses。

絕對值符號 \(|\cdot|\) 視為括號,它們裡面的算式要先算。

沒有括號時,次方和方根 (powers and roots) 最先算,然後是乘或除,最後才是加或減。 科學型電算器 (scientific calculators) 應該都知道這個道理, 但是商用電算器或更簡單的款式就可能不知道,它們可能把 \(1+2\times3\) 算成 9。 使用前最好先測試一下。

因為「減」就是「加其相反數」,「除」就是「乘其倒數」, 所以減的 precedence 應該跟加一樣,除的 precedence 應該跟乘一樣。 Precedence 一樣的連續運算,就要看它的結合性 (associativity)。 因為加、乘符合交換律 (commutative) 也符合結合律 (associative), 所以最安全的作法就是把減全換成加,把除全換成乘,就可以任意調整順序而不至於算錯。例如 \[6\div2(1+2)=6\times{1\over2}\times(1+2)={6\times3\over2}=9\] 相對地: \[6\div2\div3 = 6\times{1\over2}\times{1\over3}={6\over6}=1\] 如果不做以上轉換(減換加、除換乘), 就要記得加減和乘除的 associativity 都是左起的 (left-associative), 意思就是必須從左到右,所以 \(6\div2(1+2)=6\div2\times3\) 從左到右算出 9, 而 \(6\div2\div3\) 從左到右算出 1。

前面討論的運算都是二元運算 (binary operations), 「負」是單元運算 (unary operation)。 它的 precedence 並沒有全球一致的共識; 在數學文件裡 \(-3^2=-9\),「負」的 precedence 較低, 但是某些程式語言卻規定「負」的 precedence 最高,使得 \(-3^2\) 被解讀為 \((-3)^2\) 所以等於 9。因此,使用「負」運算要小心它的含糊性 (ambiguity), 應該盡量使用括號以便清楚表達運算的次序。

[語音講解:precedence.mp3]

[ 回上層 ]


Created: May 15, 2022
Last Revised:
© Copyright 2022 Wei-Chang Shann 單維彰     [Home Page]
shann@math.ncu.edu.tw