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

Chương trình Python để lấy tất cả các tập con có tổng s

Khi bắt buộc phải lấy tất cả tập hợp con có tổng cụ thể là 's', một phương thức được định nghĩa để lặp qua danh sách và nhận tất cả các kết hợp của danh sách và nếu nó khớp với tổng, nó sẽ được in trên bảng điều khiển.

Ví dụ

Dưới đây là một minh chứng về điều tương tự

from itertools import combinations

def sub_set_sum(size, my_array, sub_set_sum):

   for i in range(size+1):
      for my_sub_set in combinations(my_array, i):

         if sum(my_sub_set) == sub_set_sum:
            print(list(my_sub_set))

my_size = 6
my_list = [21, 32, 56, 78, 45, 99, 0]
print("The list is :")
print(my_list)
subset_sum = 53
print("The result is :")
sub_set_sum(my_size, my_list, subset_sum)

Đầu ra

The list is :
[21, 32, 56, 78, 45, 99, 0]
The result is :
[21, 32]
[21, 32, 0]

Giải thích

  • Các gói bắt buộc được nhập vào môi trường.

  • Phương thức có tên ‘sub_set_sum’ được định nghĩa để lấy kích thước của danh sách, danh sách làm tham số.

  • Nó lặp đi lặp lại trong danh sách và sử dụng phương thức 'kết hợp' để nhận tất cả các kết hợp.

  • Nếu tổng giống với một giá trị cụ thể, nó sẽ được chuyển đổi thành danh sách và hiển thị trên bảng điều khiển.

  • Bên ngoài phương thức, một kích thước được xác định.

  • Một danh sách được xác định và hiển thị trên bảng điều khiển.

  • Giá trị tập hợp con được xác định.

  • Phương thức được gọi bằng cách truyền tham số bắt buộc.

  • Đầu ra được hiển thị trên bảng điều khiển.