在數學 和計算機科學 中,運算次序 (也稱為運算順序 、運算子優先順序 )是指決定在表示式 中的哪一運算子首先被執行的規則。
比如,在四則運算 中,一般有先乘除後加減的規定。就是說在
2
+
3
×
4
{\displaystyle {{2}+{{3}\times {4}}}}
這樣的式子中,按規定會先對3和4作乘法 ,得出12,然後再把2和12加起來,最後就得出14。
自引入現代的代數標記法,乘法總是擁有比加法更高的優先次序。[ 1] [ 2] 而16和17世紀引入了指數(乘冪)以後,指數總是擁有比加法和乘法更高的優先次序。[ 1] 這個規則的定立消除了混淆並允許了標記更加簡潔。當需要越過這規則,甚至簡單地強調一下,括號 ( ) 會用以標示另一次序或者是強調預定次序來避免混亂。例如 (2 + 3) × 4 = 20 需要加優先於乘,而 (3 + 5)2 = 64 需要加優先於乘冪 。為了方便閱讀,有時括弧會換為方括弧,例如 [2 × (3 + 4)] - 5 = 9 。
基本規則
一般用於算術和编程语言 的運算次序如下:[ 1]
乘冪 和方根
x
y
{\displaystyle x^{y}}
{\displaystyle {\sqrt {}}}
乘 除
×
{\displaystyle \times }
÷
{\displaystyle \div }
加 減
+
{\displaystyle +}
−
{\displaystyle -}
當算式中同時存在多層的運算子,最高層級的運算子就優先計算。
因為加法與乘法的交換律 和結合律 ,加法可以按任何左右次序計算,乘法亦然。但運算子混合起來時需要依從運算次序。
在某些場合,把除換成倒數相乘或者把減當成加的相反對於計算更佳。例如在計算機科學 中,這允許用少一點二元運算 並讓簡化了的表示式 更容易利用交換律和結合律。轉換後,3 ÷ 4 = 3 × 1 / 4 ,即3 和4 的商等於3 和1 / 4 的積;3 − 4 = 3 + (−4) ,3 和4 的差等於3 與−4 的和。於是,1 − 3 + 7 可以想像成 1 + (−3) + 7 ,三個項用任何次序相加都會得出答案是5 。
根號 √傳統上是透過上面的橫線(線括號)框下被开方数(這避免了框下被开方数時需要括號)。其他函數用括號框著輸入來避免混淆。有時候,當輸入只是單項式 ,括號可被省略。所以 sin 3x = sin(3x ) ,而 sin x + y = sin(x ) + y ,因為 x + y 不是單項式。[ 1] 不少計算機和编程语言都要求函數加上括號。
組合符號可以凌駕這個一般的運算次序。[ 1] 組合符號可以視為單獨表示式。[ 1] 組合符號可以用結合律和分配律去除,而組合符號內的表示式簡單得不會在符號移除後造成混淆的時候,就應該移除。
例子
1
+
3
+
5
=
4
+
5
=
2
+
5
=
7.
{\displaystyle {\sqrt {1+3}}+5={\sqrt {4}}+5=2+5=7.}
分數線同樣是組合符號:
1
+
2
3
+
4
+
5
=
3
7
+
5.
{\displaystyle {\frac {1+2}{3+4}}+5={\frac {3}{7}}+5.}
為了方便閱讀,其他組合符號例如大括弧 { } 或中括弧 [ ] 會與括弧 ( ) 並用。例如:
[
(
1
+
2
)
−
3
]
−
(
4
−
5
)
=
[
3
−
3
]
−
(
−
1
)
=
1.
{\displaystyle [(1+2)-3]-(4-5)=[3-3]-(-1)=1.}
負號(一元減號)
一元運算子 − (通常讀「負」)有不同的約定。在手寫和印刷數學,表達 −32 解讀為 0 − (32 ) = −9 。[ 1] [ 3] 但部分程式和编程语言,典型例子是Microsoft Excel (和其他試算表程式)和编程语言Bc ,一元運算子比二元運算子優先,換言之,負號優先於指數,所以在這些語言中 −32 會解讀為 (−3)2 = 9 。[ 4] 這不適用於二元減號 − :例如在Microsoft Excel,=-2^2
、=-(2)^2
和=0+-2^2
會得出4,不過=0-2^2
和=-(2^2)
會得出−4。
乘除混合
同樣,使用斜杠符號 / 在諸如 1 / 2x 之類的表達式中可能會有歧義。[ 5] 如果改寫成1 ÷ 2x 並把除法解讀為倒數乘法,就變成:
1 ÷ 2 × x = 1 × 1 / 2 × x = 1 / 2 × x
以此解讀 1 ÷ 2x 就等於 (1 ÷ 2)x 。[ 1] [ 6] 不過在部分學術文書中,省略了乘號的乘法 被視為優先於除,1 ÷ 2x 等於 1 ÷ (2x ) 而不是 (1 ÷ 2)x 。舉一例子,學術期刊物理評論 的交稿說明中講明乘優先於斜杠符號標示的除,[ 7] 而其他著名物理課本也有此規定,包括朗道 和利夫希茨 編纂的《理論物理學教程 》以及《費曼物理學講義 》。
記憶術
基本上,各國都有不同的口訣讓學生記著運算次序。英文的口訣會以運算子的字首構成。
中文地區一般以「先乘除後加減」作為口訣,但是當中沒有涵蓋指數
美國普遍使用「PEMDAS」,代表「Parentheses(括號), Exponents(指數), Multiplication(乘)/Division(除), Addition(加)/Subtraction(減)」[ 8]
加拿大與紐西蘭使用「BEMDAS」,代表「Brackets(括號), Exponents(指數), Multiplication(乘)/Division(除), Addition(加)/Subtraction(減)」[ 8]
英國使用「BOMDAS」或「BIMDAS」,與前者相比,這兩個縮寫純粹改變了指數的詞彙(Orders/Indices)[ 9]
其他英語地區普遍使用「BOMDAS」
這些口訣都有機會導致誤導,例如誤以為「先加後減」,就會錯誤地運算。[ 5]
10 - 3 + 2
正確答案是 9 (但如果先加後減就會變成 5 )。
特殊情況
連續乘冪
如果乘冪以堆疊上標的方式呈現,一般規則是從上到下:[ 10] [ 1] [ 11] [ 12]
a b c = a (b c )
不是等同於 (a b )c 。
但是,以符號 ^ 或箭頭 (↑) 作表其運算子的時候,並沒有普遍標準。[ 13] 例如,Microsoft Excel 把a ^b ^c
理解成 (a b )c ,而Google Search 和Wolfram Alpha 就理解成 a (b c ) 。所以4^3^2
在前者會計成4096,在後者會計成262144。
連除
連除也存在同樣的含糊,例如 10 ÷ 5 ÷ 2 既可解讀為
(10 ÷ 5) ÷ 2
又可解讀為
10 ÷ (5 ÷ 2)
從左至右的計算原則使前者更加普遍。而且把除數變成分數的計算習慣也大大減少了含糊的產生。
參見
資料來源
^ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 Bronstein, Ilja Nikolaevič; Semendjajew, Konstantin Adolfovič. 2.4.1.1.. Grosche, Günter; Ziegler, Viktor; Ziegler, Dorothea (编). Taschenbuch der Mathematik 1 . 由Ziegler, Viktor翻译. Weiß, Jürgen 23. Thun, Switzerland / Frankfurt am Main, Germany: Verlag Harri Deutsch (and B. G. Teubner Verlagsgesellschaft , Leipzig). 1987: 115–120 [1945]. ISBN 3-87144-492-8 (德语) .
^ Ask Dr. Math . Math Forum. 2000-11-22 [2012-03-05 ] . (原始内容存档 于2021-04-21).
^ Angel, Allen R. Elementary Algebra for College Students 8. . Chapter 1, Section 9, Objective 3.
^ Formula Returns Unexpected Positive Value . Microsoft . 2005-08-15 [2012-03-05 ] . (原始内容 存档于2015-04-19).
^ 5.0 5.1 Ball, John A. Algorithms for RPN calculators 1. Cambridge, Massachusetts, USA: Wiley-Interscience , John Wiley & Sons, Inc. 1978: 31 . ISBN 0-471-03070-8 .
^ Rules of arithmetic (PDF) . Mathcentre.ac.uk. [2019-08-02 ] . (原始内容存档 (PDF) 于2021-02-24).
^ Physical Review Style and Notation Guide (PDF) . American Physical Society . Section IV–E–2–e. [2012-08-05 ] . (原始内容存档 (PDF) 于2013-04-20).
^ 8.0 8.1 Vanderbeek, Greg. Order of Operations and RPN (Expository paper). Master of Arts in Teaching (MAT) Exam Expository Papers. Lincoln, Nebraska, USA: University of Nebraska . June 2007 [2020-06-14 ] . Paper 46. (原始内容 存档于2020-06-14).
^ Order of operations (DOC) . Syllabus.bos.nsw.edu.au. [2019-08-02 ] . (原始内容存档 于2021-02-24).
^ Robinson, Raphael Mitchel . A report on primes of the form k · 2n + 1 and on factors of Fermat numbers (PDF) . Proceedings of the American Mathematical Society (University of California , Berkeley, California, USA). October 1958, 9 (5): 673–681 [677] [1958-04-07] [2020-06-28 ] . doi:10.1090/s0002-9939-1958-0096614-7 . (原始内容 (PDF) 存档于2020-06-28).
^ Olver, Frank W. J.; Lozier, Daniel W.; Boisvert, Ronald F.; Clark, Charles W. (编). NIST Handbook of Mathematical Functions . National Institute of Standards and Technology (NIST), U.S. Department of Commerce , Cambridge University Press . 2010. ISBN 978-0-521-19225-5 . MR 2723248 . [1] Archive.today 的存檔 ,存档日期2013-07-03
^ Zeidler, Eberhard ; Schwarz, Hans Rudolf; Hackbusch, Wolfgang ; Luderer, Bernd ; Blath, Jochen; Schied, Alexander; Dempe, Stephan; Wanka, Gert ; Hromkovič, Juraj ; Gottwald, Siegfried . Zeidler, Eberhard , 编. Springer-Handbuch der Mathematik I I 1. Berlin / Heidelberg, Germany: Springer Spektrum , Springer Fachmedien Wiesbaden . 2013: 590 [2012]. ISBN 978-3-658-00284-8 . doi:10.1007/978-3-658-00285-5 . ISBN 3-658-00284-0 (德语) . (xii+635 pages)
^ Van Winkle, Lewis. Exponentiation Associativity and Standard Math Notation . Codeplea - Random thoughts on programming. 2016-08-23 [2016-09-20 ] . (原始内容 存档于2020-06-28).