使用reduce函数求有理数乘积的Python程序

假设我们有一个有理数列表。我们必须使用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。

示例

让我们看下面的实现来更好地理解

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)

以上是 使用reduce函数求有理数乘积的Python程序 的全部内容, 来源链接: utcz.com/z/317227.html

回到顶部