"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 컬렉션을 Python의 모든 가능한 서브 세트로 나누는 방법은 무엇입니까?

컬렉션을 Python의 모든 가능한 서브 세트로 나누는 방법은 무엇입니까?

2025-03-13에 게시되었습니다
검색:943

How Can You Partition a Set Into All Its Possible Subsets in Python? 
을 분할하면 다음 하위 세트가 산출됩니다.

[[1], [2], [3]] [[1,2], [3]] [[1], [2,3]] [[1,3], [2]] [[1,2,3]]

재귀 솔루션

[[1], [2], [3]]
[[1,2], [3]]
[[1], [2,3]]
[[1,3], [2]]
[[1,2,3]]
이 문제에 대한 한 가지 방법은 재귀입니다. N-1 요소의 파티션이 주어지면 기존 서브 세트 중 하나에 N 번째 요소를 포함하거나 NTH 요소 만 포함하는 새로운 싱글 톤 하위 집합을 작성하여 N 요소의 파티션을 만들기 위해 확장 할 수 있습니다. 라이브러리 :

Def Partition (Collection) : LEN (Collection) == 1 인 경우 : 수율 [수집] 반품 첫 번째 = 수집 [0] 더 작은 분할의 경우 (Collection [1 :]) : # 각 자산의 서브 세트에 '첫 번째'를 삽입하십시오 n의 경우 열거 (더 작은)의 서브 세트 : 더 작은 [: n] [[첫 번째] 서브 세트] 더 작은 [n 1 :] # '첫 번째'를 자체 서브 세트에 넣습니다 수율 [[첫 번째] 더 작습니다 뭔가 = 목록 (범위 (1,5)) 열거 된 N, P의 경우 (파티션 (무언가), 1) : print (n, 정렬 된 (p))

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3