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

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

假设我们有一个有理数列表。我们必须使用reduce函数找到它们的乘积。 reduce()函数会累积地将两个参数的函数从左到右应用于对象列表。

因此,如果输入如fractions = [(5,3),(2,8),(6,9),(5,12),(7,2)],则输出将为(175,432),因为5/3 * 2/8 * 6/9 * 5/12 * 7/2 =(52657)/(389122)= 2100/5184 = 175/432.

要解决此问题,我们将按照以下步骤进行 –

  • fracs:=新列表
  • 对于每个f in frac,执行以下操作
    • 从(numerator,denominator)对f插入一个新的分数对象在fracs的末尾
  • t:=使用函数func(x,y)返回x * y来减少fracs
  • 返回(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教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程