কম্পিউটার

ভগ্নাংশ জোড়ার সংখ্যা গণনা করার প্রোগ্রাম যার যোগফল পাইথনে 1


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

  1. পাইথনে n নোড সহ BST সংখ্যা গণনা করার প্রোগ্রাম

  2. পাথের সংখ্যা গণনা করার প্রোগ্রাম যার যোগফল পাইথনে k

  3. সর্বাধিক সংখ্যক স্বতন্ত্র জোড়া গণনা করার প্রোগ্রাম যার পার্থক্যগুলি পাইথনের লক্ষ্যের চেয়ে বড়

  4. সংখ্যার তালিকা থেকে বৈধ জোড়ার সংখ্যা গণনা করার প্রোগ্রাম, যেখানে পাইথনে জোড়ার যোগফল বিজোড়