添加馏分并随后通过除以GCD进行还原时,最有效的方法是什么?
方法1:
a/b + c/d = (a*d + b*c) / b*d
方法2:
x = lcm(b, d)
[a * (x / b) + c * (x / d)] / x
答案 0 :(得分:2)
方法3:
x = gcd(b, d)
[a * (d/x) + c * (b/x)] / (b/x*d)
通过减少计算中的值的大小来最小化溢出的可能性。
仍需要进行溢出检查。
即使具有无限的精度值,上述情况也可能会降低分配成本(更大的数字会占用更多内存)。
哦,和个人资料,