添加馏分的最佳方法是什么?

时间:2014-11-27 12:29:29

标签: c++ math optimization fractions

添加馏分并随后通过除以GCD进行还原时,最有效的方法是什么?

方法1:

a/b + c/d = (a*d + b*c) / b*d

方法2:

x = lcm(b, d)
[a * (x / b) + c * (x / d)] / x

1 个答案:

答案 0 :(得分:2)

方法3:

x = gcd(b, d)
[a * (d/x) + c * (b/x)] / (b/x*d)

通过减少计算中的值的大小来最小化溢出的可能性。

仍需要进行溢出检查。

即使具有无限的精度值,上述情况也可能会降低分配成本(更大的数字会占用更多内存)。

哦,和个人资料,

相关问题