ধরুন আমাদের কাছে ভগ্নাংশের একটি তালিকা রয়েছে যেখানে প্রতিটি ভগ্নাংশ পৃথক তালিকা [লব, হর] যা সংখ্যাকে প্রতিনিধিত্ব করে (লব / হর)। আমাদের ভগ্নাংশের জোড়ার সংখ্যা বের করতে হবে যার যোগফল 1।
সুতরাং, যদি ইনপুট ভগ্নাংশের মত হয় =[[2, 7],[3, 12],[4, 14],[5, 7],[3, 4],[1, 4]], তাহলে আউটপুট 4 হবে, যেমন (2/7 + 5/7), (3/12 + 3/4), (3/4 + 1/4), (4/14 + 5/7) হল চারটি জোড়া যার যোগফল থেকে 1.
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:
- d :=একটি নতুন মানচিত্র
- উত্তর :=0
- প্রতিটি ভগ্নাংশের জন্য i ভগ্নাংশে, কর
- x :=i[সংখ্যা]
- y :=i[হর]
- g :=(x, y) এর gcd
- x :=x / g
- y :=y / g
- temp_x :=y - x
- temp_y :=y
- যদি (temp_x, temp_y) d হয়, তাহলে
- উত্তর :=উত্তর + d[temp_x, temp_y]
- d[x, y] :=1 + (d[(x, y)] যখন এটি পাওয়া যায়, অন্যথায় 0)
- উত্তর ফেরত দিন
আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:
উদাহরণ কোড
class Solution: def solve(self, fractions): import math d = {} ans = 0 for i in fractions: x = i[0] y = i[1] g = math.gcd(x, y) x /= g y /= g temp_x = y - x temp_y = y if (temp_x, temp_y) in d: ans += d[(temp_x, temp_y)] d[(x, y)] = d.get((x, y), 0) + 1 return ans ob = Solution() fractions = [[2, 7],[3, 12],[4, 14],[5, 7],[3, 4],[1, 4]] print(ob.solve(fractions))
ইনপুট
[[2, 7],[3, 12],[4, 14],[5, 7],[3, 4],[1, 4]]
আউটপুট
4