使用 Reduce 函数查找有理数乘积的 Python 程序
pythonserver side programmingprogramming更新于 2025/12/23 11:24:17
假设我们有一个有理数列表。我们必须使用 Reduce 函数查找它们的乘积。 Reduce() 函数将一个带有两个参数的函数从左到右累加应用于对象列表。
因此,如果输入为分数 = [(5,3),(2,8),(6,9),(5,12),(7,2)],则输出将为 (175, 432),因为 5/3 * 2/8 * 6/9 * 5/12 * 7/2 = (5*2*6*5*7)/(3*8*9*12*2) = 2100/5184 = 175/432。
为了解决这个问题,我们将遵循以下步骤 −
- fracs := a new list
- 对于 frac 中的每个 f,执行
- 在末尾从 (分子,分母) 对 f 插入一个新的分数对象fracs
- t := reduce(fracs with function func(x, y) returns x*y)
- 返回一对 (t 的分子,t 的分母)
示例
让我们看看下面的实现以便更好地理解
from fractions import Fraction
from functools import reduce
def solve(frac):
fracs = []
for f in frac:
fracs.append(Fraction(*f))
t = reduce(lambda x, y: x*y, fracs)
return t.numerator, t.denominator
frac = [(5,3),(2,8),(6,9),(5,12),(7,2)]
print(solve(frac))
输入
[(5,3),(2,8),(6,9),(5,12),(7,2)]
输出
(175, 432)
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

