কম্পিউটার

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


ধরুন আমাদের কাছে ধনাত্মক সংখ্যার একটি তালিকা আছে যাকে বলা হয় সংখ্যা। এখন একটি ক্রিয়াকলাপ বিবেচনা করুন যেখানে আমরা a এবং b যেকোন দুটি মান সরিয়ে ফেলি যেখানে a ≤ b এবং যদি a

সুতরাং, যদি ইনপুটটি nums =[2, 4, 5] এর মত হয়, তাহলে আউটপুট হবে 1, কারণ, আমরা 4 এবং 5 নির্বাচন করতে পারি তারপর [2, 1] পেতে 1 ব্যাক ইনসার্ট করতে পারি। এখন [1] পেতে 2 এবং 1 বেছে নিন।

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

  • s :=সংখ্যায় উপস্থিত সমস্ত উপাদানের যোগফল
  • একটি ফাংশন সংজ্ঞায়িত করুন f()। এর জন্য i, s
  • লাগবে
  • যদি i>=সংখ্যার আকার , তারপর
    • রিটার্ন এস
  • n :=সংখ্যা[i]
  • যদি s - 2 * n <0, তারপর
    • f(i + 1, s) ফেরত দিন
  • নূন্যতম f(i + 1, s - 2 * n) এবং f(i + 1, s) ফেরত দিন
  • প্রধান পদ্ধতি থেকে f(0, s) রিটার্ন করুন

উদাহরণ

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

def solve(nums):
   s = sum(nums)

   def f(i, s):
      if i >= len(nums):
         return s
      n = nums[i]
      if s - 2 * n < 0:
         return f(i + 1, s)
      return min(f(i + 1, s - 2 * n), f(i + 1, s))

   return f(0, s)

nums = [2, 4, 5]
print(solve(nums))

ইনপুট

[2, 4, 5]

আউটপুট

1

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

  2. পাইথন প্রোগ্রাম ল্যাম্বডা এক্সপ্রেশন ব্যবহার করে বিজোড় সংখ্যার সংখ্যা খুঁজে বের করতে এবং ফাংশন হ্রাস করে

  3. পাইথন প্রোগ্রাম একটি তালিকায় বৃহত্তম, ক্ষুদ্রতম, দ্বিতীয় বৃহত্তম এবং দ্বিতীয় ক্ষুদ্রতম খুঁজে পেতে?

  4. পাইথন প্রোগ্রাম একটি প্রদত্ত সীমার মধ্যে র্যান্ডম সংখ্যা তৈরি করতে এবং একটি তালিকায় সংরক্ষণ করতে?