运算顺序
yùn suàn shùn xù
运算顺序是决定数学表达式中各项计算执行先后次序的标准规则。
Formula
\text{PEMDAS: Parentheses, Exponents, Multiply/Divide (left to right), Add/Subtract (left to right)}
Definition
运算顺序是一套规则,告诉你在一个含有多种运算的表达式中,应该先做哪种运算:(1)括号及其他分组符号,(2)指数与方根,(3)乘法与除法(同级,从左到右),(4)加法与减法(同级,从左到右),常用口诀 PEMDAS 来记忆。同一优先级的运算按从左到右的顺序进行,所以 $12 / 4 \times 3 = 3 \times 3 = 9$,而不是 $12/12=1$。形式上,这是一套用于无歧义地解析数学表达式的句法约定,体现在运算符的优先级和结合性规则之中;像逆波兰表示法这样的形式记法,通过把解析树显式化,从而无需依赖这类规则。
Example
$2 + 3 \times 4 = 2 + 12 = 14$(先乘),除非有括号说明,否则不是 $(2+3) \times 4=20$。$3 + 6^2 / (2 \times 3) - 1 = 3 + 36/6 - 1 = 3+6-1=8$,依次遵循括号、指数、除法,再从左到右进行加减法。表达式 $2^{3^2}$ 若没有结合性约定就会产生歧义:按(标准的)右结合给出 $2^{(3^2)}=2^9=512$,按左结合则给出 $(2^3)^2=8^2=64$;数学以及大多数编程语言对幂运算都采用右结合。
Key Insight
英文助记句"Please Excuse My Dear Aunt Sally"能帮你记住 PEMDAS,这些规则存在的意义,是让每个人从同一个表达式中都能得到相同的答案。乘法和除法处于同一优先级,按从左到右的顺序处理,正是这条规则消除了这里的歧义。运算符优先级归根结底是一种设计上的取舍,而非数学定律:不同的编程语言会做出不同的选择(例如 APL 就严格按从右到左的顺序求值,完全没有优先级之分),而 PEMDAS 只是数学教育中采用的标准约定。