কম্পিউটার

পাইথনে প্রদত্ত সীমার মধ্যে উপাদান বর্গক্ষেত্রের জোড়ার সংখ্যা খুঁজে বের করার জন্য প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যা 1 এবং 2 সংখ্যার দুটি তালিকা রয়েছে। এবং নিম্ন এবং উপরের দুটি সংখ্যা আছে। আমাদের জোড়ার সংখ্যা (i, j) খুঁজে বের করতে হবে যেমন নিম্ন ≤ nums1[i]^2 + nums2[j]^2 ≤ উপরের।

সুতরাং, ইনপুট যদি nums1 =[5, 3, 2] nums2 =[8, 12, 6] Lower =10 upper =50 এর মত হয়, তাহলে আউটপুট হবে 2 কারণ জোড়াগুলো (1, 2) এর মত এবং ( 2, 2)

  • 10 <=3^2 + 6^2 <<50 =10 <=45 <<50
  • 10 <=2^2 + 6^2 <<50 =10 <=40 <<50

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • প্রতিটি উপাদানকে তার বর্গাকার সংখ্যা 1 দিয়ে প্রতিস্থাপন করুন
  • প্রতিটি উপাদানকে তার বর্গ সংখ্যা 2 দিয়ে প্রতিস্থাপন করুন
  • n :=সংখ্যা1 এর আকার
  • m :=সংখ্যা 2 এর আকার
  • যদি n> m হয়, তাহলে
    • সংখ্যা 1 এবং সংখ্যা2 অদলবদল করুন
    • n এবং m অদলবদল করুন
  • সংখ্যা2 :=তালিকা সংখ্যা2 সাজান
  • res :=0
  • সংখ্যা1 এ প্রতিটি e1 এর জন্য, করুন
    • st :=সংখ্যা 2 তে (নিম্ন - e1) সন্নিবেশ করার জন্য সর্বাধিক অবস্থান বাম যাতে উপাদানগুলি সাজানো হয়
    • en :=nums2 তে (উপরের - e1) সন্নিবেশ করার জন্য সবচেয়ে সঠিক অবস্থান যাতে উপাদানগুলি সাজানো হয়
    • গণনা :=en - st
    • res :=res + count
  • রিটার্ন রিটার্ন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

from bisect import bisect_left, bisect_right
def solve(nums1, nums2, lower, upper):
   nums1 = [i * i for i in nums1]
   nums2 = [i * i for i in nums2]
   n, m = len(nums1), len(nums2)
   if n > m:
      nums1, nums2 = nums2, nums1
      n, m = m, n
   nums2 = sorted(nums2)
   res = 0
   for e1 in nums1:
      st = bisect_left(nums2, lower - e1)
      en = bisect_right(nums2, upper - e1)
      count = en - st
      res += count
   return res

nums1 = [5, 3, 2]
nums2 = [8, 12, 6]
lower = 10
upper = 50
print(solve(nums1, nums2, lower, upper))

ইনপুট

[5, 3, 2], [8, 12, 6], 10, 50

আউটপুট

2

  1. পাইথনে একটি পরিসরে নোডের সংখ্যা খুঁজে বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রাম একটি তালিকার ক্ষুদ্রতম সংখ্যা খুঁজে বের করতে

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

  4. প্রদত্ত পরিসরে বিজোড় ফ্যাক্টর সহ উপাদানের সংখ্যার জন্য পাইথন প্রোগ্রাম