gpt4 book ai didi

python - 如何在Python中化简分数?

转载 作者:行者123 更新时间:2023-12-02 19:06:46 29 4
gpt4 key购买 nike

仍在学习 Python,因此欢迎任何帮助。我编写了一个函数来获取分数,但分数通常可以简化。我的代码还没有做到这一点。有什么想法如何在不使用任何 import 函数的情况下简化分数吗?代码:

def add_frac(n1, d1, n2, d2):
frac = (((n1 * d1) + (n2 * d2)), (d1 * d2))
return frac

示例:add_frac(1, 2, 1, 4) 给出 (6, 8) 而不是 (3, 4)

欢迎任何帮助!

最佳答案

这是一种非常幼稚的入门方法,您可以添加一些检查以提高效率。

def simplify_frac(n, d):
i = 2
while i < min(n, d) + 1:
if n % i == 0 and d % i == 0:
n = n // i
d = d // i
else:
i += 1
return n, d

# Some examples
In [105]: simplify_frac(2, 4)
Out[105]: (1, 2)

In [106]: simplify_frac(16, 36)
Out[106]: (4, 9)

In [107]: simplify_frac(7, 3)
Out[107]: (7, 3)

In [108]: simplify_frac(10, 1)
Out[108]: (10, 1)

In [109]: simplify_frac(1, 10)
Out[109]: (1, 10)

In [110]: simplify_frac(102, 10)
Out[110]: (51, 5)

In [111]: simplify_frac(110, 10)
Out[111]: (11, 1)

我们使用模运算符 % 来检查整数除以 i 的余数,如果 n 和 d 的余数均为 0 我们知道 i 将它们分开。

关于python - 如何在Python中化简分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64931411/

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