运算次序
在数学和计算机科学中,运算次序(也称为运算顺序、运算子优先顺序)是指决定在表示式中的哪一运算子首先被执行的规则。
比如,在四则运算中,一般有先乘除后加减的规定。就是说在这样的式子中,按规定会先对3和4作乘法,得出12,然后再把2和12加起来,最后就得出14。
自引入现代的代数标记法,乘法总是拥有比加法更高的优先次序。[1][2]而16和17世纪引入了指数(乘幂)以后,指数总是拥有比加法和乘法更高的优先次序。[1]这个规则的定立消除了混淆并允许了标记更加简洁。当需要越过这规则,甚至简单地强调一下,括号 ( ) 会用以标示另一次序或者是强调预定次序来避免混乱。例如 (2 + 3) × 4 = 20 需要加优先于乘,而 (3 + 5)2 = 64 需要加优先于乘幂。为了方便阅读,有时括弧会换为方括弧,例如 [2 × (3 + 4)] - 5 = 9。
基本规则
当算式中同时存在多层的运算子,最高层级的运算子就优先计算。
因为加法与乘法的交换律和结合律,加法可以按任何左右次序计算,乘法亦然。但运算子混合起来时需要依从运算次序。
在某些场合,把除换成倒数相乘或者把减当成加的相反对于计算更佳。例如在计算机科学中,这允许用少一点二元运算并让简化了的表示式更容易利用交换律和结合律。转换后,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]组合符号可以用结合律和分配律去除,而组合符号内的表示式简单得不会在符号移除后造成混淆的时候,就应该移除。
- 例子
分数线同样是组合符号:
为了方便阅读,其他组合符号例如大括弧 { } 或中括弧 [ ] 会与括弧 ( ) 并用。例如:
负号(一元减号)
一元运算子 − (通常读“负”)有不同的约定。在手写和印刷数学,表达 −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]
- abc = a(bc)
不是等同于 (ab)c。
但是,以符号 ^ 或箭头 (↑) 作表其运算子的时候,并没有普遍标准。[13]例如,Microsoft Excel把a^b^c
理解成 (ab)c,而Google Search和Wolfram Alpha就理解成 a(bc)。所以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.is的存档,存档日期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).