ধরুন আমাদের কাছে ভগ্নাংশের একটি তালিকা রয়েছে যেখানে প্রতিটি ভগ্নাংশ পৃথক তালিকা [লব, হর] যা সংখ্যাকে প্রতিনিধিত্ব করে (লব / হর)। আমাদের ভগ্নাংশের জোড়ার সংখ্যা বের করতে হবে যার যোগফল 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