Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình Python cho vấn đề tổng tập hợp con


Trong bài viết này, chúng ta sẽ tìm hiểu về giải pháp cho câu hỏi được đưa ra bên dưới.

Tuyên bố sự cố - Chúng ta được cho một tập hợp các số nguyên không âm trong một mảng và một tổng giá trị, chúng ta cần xác định xem có tồn tại một tập hợp con của tập hợp đã cho có tổng bằng một tổng cho trước hay không.

Bây giờ chúng ta hãy quan sát giải pháp trong việc triển khai bên dưới -

# Cách tiếp cận ngây thơ

Ví dụ

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")

Đầu ra

Found a subset with given sum

# phương pháp tiếp cận động

Ví dụ

# 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)

Đầu ra

Found a subset with given sum

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu về cách chúng ta có thể tạo một Chương trình Python cho Bài toán Tổng tập hợp con