কম্পিউটার

পাইথনে সমান যোগফল সহ 1s এবং 2s এর একটি অ্যারেকে 2 ভাগে ভাগ করা যায় কিনা তা পরীক্ষা করুন


ধরুন আমাদের একটি অ্যারে সংখ্যা আছে যা শুধুমাত্র 1 এবং 2 সঞ্চয় করে। আমাদের পরীক্ষা করতে হবে যে অ্যারেটিকে দুটি ভিন্ন অংশে ভাগ করা যায় যেমন প্রতিটি অংশে উপাদানের যোগফল একই।

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[1, 1, 2, 2, 2], তাহলে আউটপুটটি True হবে কারণ আমরা এই অ্যারেটিকে [1, 1, 2] এবং [2, 2] এর সমষ্টির মতো ভাগ করতে পারি প্রতিটি অংশ 4.

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

  • মোট :=0, one_count :=0
  • মোট :=সংখ্যার সমস্ত উপাদানের যোগফল
  • one_count :=সংখ্যায় 1s গণনা
  • যদি মোট জোড় হয়, তাহলে
    • মিথ্যে ফেরত দিন
  • যদি (মোট / 2) এর পূর্ণসংখ্যা অংশ জোড় হয়, তাহলে
    • সত্য ফেরান
  • যদি one_count> 0 হয়, তাহলে
    • সত্য ফেরান
  • অন্যথায়,
    • মিথ্যে ফেরত দিন

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

উদাহরণ

def solve(nums):
   total = 0
   one_count = 0
   total = sum(nums)
   one_count = nums.count(1)
   if total % 2:
      return False
   if (total // 2) % 2 == 0:
      return True
   if one_count > 0:
      return True
   else:
      return False
nums = [1, 1, 2, 2, 2]
print(solve(nums))

ইনপুট

[1, 1, 2, 2, 2]

আউটপুট

True

  1. তালিকাকে জোড়ায় ভাগ করা যায় কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম যেখানে যোগফল পাইথনে k-এর একাধিক

  2. আমরা পাইথনে সমান যোগফল দিয়ে দুটি পার্টিশনের গ্রুপ করতে পারি কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম?

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

  4. পাইথনে সমান যোগফল সহ তিনটি অংশে বিভাজন অ্যারে