Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

합계가 있는 모든 하위 집합을 가져오는 Python 프로그램

<시간/>

특정 합이 ''인 부분집합을 모두 구해야 할 때 목록을 순회하여 목록의 모든 조합을 구하고 합과 일치하면 콘솔에 출력하는 메소드가 정의됩니다.

아래는 동일한 데모입니다.

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)

출력

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

설명

  • 필요한 패키지를 환경으로 가져옵니다.

  • 목록의 크기를 매개변수로 받는 'sub_set_sum'이라는 메서드가 정의되어 있습니다.

  • 목록을 반복하고 '조합' 방법을 사용하여 모든 조합을 가져옵니다.

  • 합계가 특정 값과 같으면 목록으로 변환하여 콘솔에 표시합니다.

  • 메소드 외부에 크기가 정의됩니다.

  • 목록이 정의되고 콘솔에 표시됩니다.

  • 하위 집합 값이 정의됩니다.

  • 메소드는 필수 매개변수를 전달하여 호출됩니다.

  • 출력은 콘솔에 표시됩니다.