কম্পিউটার

পাইথনে গুণিত সংখ্যার সর্বাধিক যোগফল খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যা এবং গুণক নামে দুটি তালিকা রয়েছে। এখন একটি অপারেশন বিবেচনা করুন যেখানে আমরা সংখ্যা থেকে যেকোনো সংখ্যা মুছে ফেলতে পারি এবং গুণক থেকে যেকোনো সংখ্যা মুছে ফেলতে পারি তারপর তাদের একসাথে গুণ করতে পারি। তালিকাগুলির একটি খালি না হওয়া পর্যন্ত আমাদের অবশ্যই এই অপারেশনটি পুনরাবৃত্তি করতে হবে, আমাদের গুণিত সংখ্যার সর্বাধিক যোগফল খুঁজে বের করতে হবে৷

সুতরাং, ইনপুট যদি nums =[-4, 4, 3] গুণক =[-2, 2] এর মত হয়, তাহলে আউটপুট হবে 16, কারণ আমরা -4 পেতে -2 এর সাথে -4 এবং 2 এর সাথে 4 মেলাতে পারি। * -2 + 4 * 2।

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

  • তালিকার সংখ্যাগুলি সাজান

  • তালিকা গুণক সাজান

  • res :=0

  • যদি সংখ্যার আকার <গুণকের আকার, তাহলে

    • অদলবদল সংখ্যা এবং গুণক :=গুণক, সংখ্যা

  • n :=সংখ্যার আকার

  • m :=গুণকের আকার

  • আমি 0 থেকে m - 1 রেঞ্জের জন্য, কর

    • যদি গুণক[i] <=0 হয়, তাহলে

      • res :=res + nums[i] * multipliers[i]

    • অন্যথায়,

      • res :=res + multipliers[i] * nums[n -(m - i)]

  • রিটার্ন রিটার্ন

উদাহরণ

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

def solve(nums, multipliers):
   nums.sort()
   multipliers.sort()
   res = 0
   if len(nums) < len(multipliers):
      nums, multipliers = multipliers, nums

   n, m = len(nums), len(multipliers)
   for i in range(m):
      if multipliers[i] <= 0:
         res += nums[i] * multipliers[i]
      else:
         res += multipliers[i] * nums[n - (m - i)]
   return res

nums = [-4, 4, 3]
multipliers = [-2, 2]
print(solve(nums, multipliers))

ইনপুট

[-4, 4, 3], [-2, 2]

আউটপুট

16

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

  2. পাইথনে প্রথম n বিজোড় সংখ্যার যোগফল বের করার প্রোগ্রাম

  3. পাইথনে 1 থেকে N পর্যন্ত সমস্ত অনুপস্থিত সংখ্যা খুঁজে বের করার প্রোগ্রাম

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