单个术语中多个连续除法运算的计算顺序
Order of calculation for multiple successive division operations in a single term
为什么这个函数句柄在Matlab中g = @(x)(4*x^5-A)/5/x^4;
对应
g(x) = (4x^5-A)/5x^4
而不是 (4x^5-A)/(5/x^4)
?
您观察到的是除法运算符的left associativity。也许我们应该先简化示例,没有匿名函数,只有运算符:
>> 5/5/5
ans =
0.2000
>> (5/5)/5
ans =
0.2000
>> 5/(5/5)
ans =
5
>>
背后并没有真正合乎逻辑的原因,但我所知道的所有编程语言都有像 /
这样的数学运算符左结合。 *
也是左结合的,但通常无关紧要。说到操作顺序,还要考虑precedence。
为什么这个函数句柄在Matlab中g = @(x)(4*x^5-A)/5/x^4;
对应
g(x) = (4x^5-A)/5x^4
而不是 (4x^5-A)/(5/x^4)
?
您观察到的是除法运算符的left associativity。也许我们应该先简化示例,没有匿名函数,只有运算符:
>> 5/5/5
ans =
0.2000
>> (5/5)/5
ans =
0.2000
>> 5/(5/5)
ans =
5
>>
背后并没有真正合乎逻辑的原因,但我所知道的所有编程语言都有像 /
这样的数学运算符左结合。 *
也是左结合的,但通常无关紧要。说到操作顺序,还要考虑precedence。