इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे।
समस्या कथन - हमें एक सरणी में गैर-ऋणात्मक पूर्णांकों का एक सेट दिया जाता है, और एक मान योग, हमें यह निर्धारित करने की आवश्यकता होती है कि दिए गए सेट का एक उपसमुच्चय किसी दिए गए योग के बराबर योग के साथ मौजूद है या नहीं।
आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें -
# अनुभवहीन दृष्टिकोण
उदाहरण
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
निष्कर्ष
इस लेख में, हमने सीखा है कि हम सबसेट सम समस्या के लिए पायथन प्रोग्राम कैसे बना सकते हैं