এই নিবন্ধে, আমরা নীচে দেওয়া সমস্যার বিবৃতিটির সমাধান সম্পর্কে জানব৷
সমস্যা বিবৃতি − আমাদেরকে একটি অ্যারেতে অ-ঋণাত্মক পূর্ণসংখ্যার একটি সেট এবং একটি সমষ্টির মান দেওয়া হয়েছে, আমাদের নির্ধারণ করতে হবে যে প্রদত্ত সেটের একটি উপসেট আছে কিনা একটি প্রদত্ত যোগফলের সমতুল্য যোগফল৷
এখন নিচের বাস্তবায়নে সমাধানটি পর্যবেক্ষণ করা যাক -
# নিষ্পাপ পদ্ধতি
উদাহরণ
def SubsetSum(set, n, sum) : # Base Cases if (sum == 0) : return True if (n == 0 and sum != 0) : return False # ignore if last element is > sum if (set[n - 1] > sum) : return SubsetSum(set, n - 1, sum); # else,we check the sum # (1) including the last element # (2) excluding the last element return SubsetSum(set, n-1, sum) or SubsetSum(set, n-1, sumset[n-1]) # main set = [2, 14, 6, 22, 4, 8] sum = 10 n = len(set) if (SubsetSum(set, n, sum) == True) : print("Found a subset with given sum") else : print("No subset with given sum")
আউটপুট
Found a subset with given sum
# গতিশীল পদ্ধতি
উদাহরণ
# maximum number of activities that can be performed by a single person def Activities(s, f ): n = len(f) print ("The selected activities are:") # The first activity is always selected i = 0 print (i,end=" ") # For rest of the activities for j in range(n): # if start time is greater than or equal to that of previous activity if s[j] >= f[i]: print (j,end=" ") i = j # main s = [1, 2, 0, 3, 2, 4] f = [2, 5, 4, 6, 8, 8] Activities(s, f)
আউটপুট
Found a subset with given sum
উপসংহার
এই নিবন্ধে, আমরা কীভাবে সাবসেট সমস্য সমস্যার জন্য একটি পাইথন প্রোগ্রাম তৈরি করতে পারি সে সম্পর্কে শিখেছি