Cho một danh sách các cặp (tử số, mẫu số) đại diện cho các số hữu tỷ. Sử dụng hàm reduce() từ module functools để nhân lần lượt tất cả các phân số này. Kết quả trả về dưới dạng cặp (tử số, mẫu số) đã rút gọn.
Ví dụ: với [(5,3), (2,8), (6,9), (5,12), (7,2)], tích là 175/432.
Các bước thực hiện
- Chuyển từng cặp thành đối tượng
Fractiontừ modulefractions. - Dùng
reduce(lambda x, y: x * y, fracs)để nhân dồn. - Trả về
(t.numerator, t.denominator).
Ví dụ mã nguồn
from fractions import Fraction
from functools import reduce
def solve(frac):
fracs = [Fraction(*f) for f in frac]
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)) # (175, 432)
Đầu vào / Đầu ra
Input: [(5,3),(2,8),(6,9),(5,12),(7,2)]
Output: (175, 432)