Math 这个术语是什么;“博德马斯”;什么意思?

Math 这个术语是什么;“博德马斯”;什么意思?,math,Math,什么是BODMAS?为什么它在编程中有用?: 你认为2+3x5的答案是什么 是(2+3)x5=5x5=25吗 或者2+(3 x 5)=2+15=17 博德马斯可以来拯救我们,给我们一些规则来遵循,这样我们总能得到正确的答案: (B) 拍子(O)顺序(D)分割(M)乘法(A)加法(S)欠牵引 根据BODMAS的说法,乘法应该在加法之前完成,因此17实际上是BODMAS的正确答案,如果你输入2+3 x 5,你的计算器也会给出这个答案 为什么它在编程中有用?不知道,但我想这是因为你可以去掉一些括号?我

什么是BODMAS?为什么它在编程中有用?

:

你认为2+3x5的答案是什么

是(2+3)x5=5x5=25吗

或者2+(3 x 5)=2+15=17

博德马斯可以来拯救我们,给我们一些规则来遵循,这样我们总能得到正确的答案:

(B) 拍子(O)顺序(D)分割(M)乘法(A)加法(S)欠牵引

根据BODMAS的说法,乘法应该在加法之前完成,因此17实际上是BODMAS的正确答案,如果你输入2+3 x 5,你的计算器也会给出这个答案

为什么它在编程中有用?不知道,但我想这是因为你可以去掉一些括号?我是一个很有防御性的程序员,所以我的台词可以如下所示:

result = (((i + 4) - (a + b)) * MAGIC_NUMBER) - ANOTHER_MAGIC_NUMBER;
使用BODMAS,您可以更清楚地了解这一点:

result = (i + 4 - (a + b)) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER;
我想我仍然会使用第一个变量-更多的括号,但这样我就不必再学习另一个规则,我忘记它并导致那些奇怪的难以调试的错误的风险就更小了

不过我只是在猜测那部分

迈克·斯通编辑:正如盖尤斯指出的那样,修正了数学问题。

另一个版本(在中学)是“请原谅我亲爱的萨莉阿姨”

  • 括号
  • 倡导者
  • 倍增
  • 分部
  • 加成
  • 减法

助记符在学校很有用,在今天的编程中仍然很有用。

表达式中的运算顺序,例如:

foo * (bar + baz^2 / foo) 
  • B先拍球拍
  • Oorder(即幂和平方根等)
  • Division和M倍增(从左到右)
  • A添加和SU牵引(从左到右)

资料来源:

当我在小学(加拿大)学到这一点时,它被称为BEDMAS:

B球拍
Exponents
Division
M乘法
Aaddition
Su牵引力


仅对那些来自世界这一地区的人来说…

我真的不确定如何适用于编程旧的BODMAS助记符。语言之间的操作顺序没有保证,虽然许多语言保持标准操作的顺序,但并非所有语言都这样做。还有一些语言的操作顺序并不是很有意义(例如,Lisp方言)。在某种程度上,如果你忘记了标准顺序,或者对所有东西都使用括号(例如(a*b)+c),或者专门学习你所使用的每种语言的顺序,你可能会更好地进行编程。

我没有编辑的能力,但这并不完全正确。他减少

(i + 4) - (a + b)

它们并不等同。对于整个表达式,我能得到的最佳缩减是

((i + 4) - (a + b)) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER;


我在某个地方读到,尤其是在C/C++中,将表达式拆分为小语句更有利于优化;因此,与在一行中编写非常复杂的表达式不同,您可以将部分缓存到变量中,并分步执行,然后在执行过程中构建它们


优化例程将在有变量的地方使用寄存器,这样就不会影响空间,但对编译器有一点帮助。

我通常使用空白来显示四个+-/*操作的操作顺序,如:a+b*c表示所有其他运算符,我用括号把操作顺序弄清楚了。我今天以前从未见过博德马斯。我在新西兰也学过PEMDAS(帕伦、指数、乘法、除法、加法、减法)“Exponents”对我来说比一般命名的“Order”更有意义。老实说,我支持你的“bracketty”风格,而不是所谓的优化版本。也许只有我一个人,但我发现>结果=((I+4)-(a+b))*魔术数字-另一个魔术数字;更容易从心理上分析。。。
((i + 4) - (a + b)) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER;
(i + 4 - a - b) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER;