কম্পিউটার

অ্যারেটিকে দুটি সাব-অ্যারেতে ভাগ করা যায় কিনা তা পরীক্ষা করুন যাতে তাদের পরম পার্থক্য পাইথনে Ks হয়


ধরুন, আমাদেরকে পূর্ণসংখ্যা সম্বলিত একটি অ্যারে "input_list" প্রদান করা হয়েছে। আমাদের দেওয়া সমস্যাটি হল প্রদত্ত অ্যারেটিকে দুটি অর্ধে ভাগ করা যায় কিনা তা পরীক্ষা করা, যেখানে দুটি অর্ধের যোগফলের পার্থক্য একটি সংখ্যা n এর সমান। নম্বর n আগেই দেওয়া হবে৷

সুতরাং, যদি ইনপুটটি হয় input_list=[9,2,5,6], n =0, তাহলে আউটপুট হবে "সম্ভাব্য"৷

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

  • তালিকা_মোট :=ইনপুট_লিস্টের মানের সমষ্টি
  • যদি (list_total - n) mod 2 1 এর মত হয়, তাহলে
    • প্রত্যাবর্তন "সম্ভব নয়"
  • val :=(list_total - n) / 2
  • temp_sum :=0;
  • আমি রেঞ্জ 0 থেকে ইনপুট_লিস্টের আকারের জন্য, করুন
    • temp_sum :=temp_sum + input_list[i]
    • যদি temp_sum val এর সমান হয়, তাহলে
      • রিটার্ন "সম্ভব"
  • প্রত্যাবর্তন "সম্ভব নয়"

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

উদাহরণ

def solve(input_list,n):
   list_total = sum(input_list)
   if (list_total - n) % 2 == 1:
      return "Not Possible"
   val = (list_total - n) / 2
   temp_sum = 0;
   for i in range (0,len(input_list)):
      temp_sum += input_list[i]
      if (temp_sum == val):
         return "Possible"
   return "Not Possible"
input_list= [9,2,5,6]
n = 0
print(solve(input_list, n))

ইনপুট

[9,2,5,6], 0

আউটপুট

Possible

  1. সংখ্যার একটি তালিকা বিভক্ত করার প্রোগ্রাম যাতে পাইথনে মধ্যমা মানের পরম পার্থক্য সবচেয়ে ছোট হয়

  2. চেসবোর্ডে ন্যূনতম কাটগুলি এমনভাবে করা যেতে পারে যাতে এটি পাইথনে 2 ভাগে বিভক্ত না হয়

  3. পাইথনে যে সমষ্টিগুলির জন্য একটি অ্যারেকে সমান সমষ্টির সাব্যারেতে ভাগ করা যায় তা সন্ধান করুন

  4. প্রদত্ত দুটি অ্যারে থেকে সাব-অ্যারে খুঁজুন যেমন তাদের পাইথনে সমান যোগফল রয়েছে