gpt4 book ai didi

c++ - C++中除法和乘法特殊顺序的原因

转载 作者:太空狗 更新时间:2023-10-29 20:01:19 36 4
gpt4 key购买 nike

我正在将一些 C++ 代码移植到 Java 中,并且我不断遇到编写它的人不断执行以下操作的实例:

double c = (1.0/(a+1.0)*pow(b, a+1.0));
double d = (1./(integral(gamma, dmax)-integral(gamma, dmin)))*(integral(gamma+1, dmax)-integral(gamma+1, dmin));

代替:

double c = pow(b, a+1.0)/(a+1.0);
double d = (integral(gamma+1, dmax)-integral(gamma+1, dmin))/(integral(gamma, dmax)-integral(gamma, dmin));

第二个似乎更清楚,除非我对 C++ 中的操作顺序有误,否则它们应该做同样的事情。有什么理由做第一个而不是第二个吗?我唯一能想到的就是一些精确的奇怪案例。

最佳答案

是的,它们是一样的。我能想到的唯一原因是数学上的清晰度:有时当你对一个数量进行归一化时,你经常会这样写:

answer = (1/total) * (some of it)

比如柯西积分定理常写成

f(a) = (1/(2*pi*i)) * integral(f(z)/(z-a), dz)

关于c++ - C++中除法和乘法特殊顺序的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1840497/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com