Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

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.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • fracs :=새 목록
  • frac의 각 f에 대해 다음을 수행합니다.
    • fracs의 끝에 (분자, 분모) 쌍 f에서 새로운 분수 개체 삽입
  • t :=reduce(함수 func(x, y)가 있는 분수는 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)