मान लीजिए हमारे पास परिमेय संख्याओं की एक सूची है। हमें रिड्यूस फंक्शन का उपयोग करके उनके उत्पाद को खोजना होगा। कम () फ़ंक्शन बाएं से दाएं ऑब्जेक्ट्स की सूची पर संचयी रूप से दो तर्कों के साथ एक फ़ंक्शन लागू करता है।
इसलिए, यदि इनपुट भिन्नों की तरह है =[(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.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- फ्रैक्स:=एक नई सूची
- फ़्रेक में प्रत्येक f के लिए, करें
- फ़्रेक के अंत में (अंश, हर) युग्म f से एक नई भिन्न वस्तु डालें
- t :=कम करें (फ़ंक्शन 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)