집합이 있다고 가정 해 봅시다 : {1,2,...,N}
, 그리고 각 하위 집합의 특정 수의 요소를 가진 K 개의 비어 있지 않은 부분 집합의 비 반복적 인 그룹을 찾고 싶습니다.세트의 서브 세트의 비 반복 그룹을 찾는 쉬운 방법이 있습니까?
예 : 세트 : {1,2,3,4,5,6,7}
서브 세트 수 3
, 요소 수 3,3,1
. 이 같은 기 생성 것이다 : I가 제 조합 한 후 두 번째 생성한다면 {{1,2,3},{4,5,6},{7}} or {{5,7,2},{4,3,1},{6}}
등
모든 가능한 그룹의 수,이 경우에 있어서는, 동일한
C(7,3)*C(4,3)*C(1,1)*1/(2!) = 35*4/2 = 70
로를 I (140)을 얻을 것 결과는 계승에 영향을 미치지 않기 때문에
내 질문은 : 그룹이 이미 나타나는지 확인하는 쉬운 방법이 있습니까? 이전에 계산 된 모든 그룹으로 배열을 만들고 새로운 그룹이 이미 생성되었는지 확인해야합니까?
"비 반복 그룹을 찾고 싶습니다."- 반복하지 않는 그룹을 나열 하시겠습니까? "반복적 인"그룹 (찾을 수없는 종류)의 예를 들어 줄 수 있습니까? –
@ גלעד ברקן 물론, 집합 {1,2,3,4,5}, 부분 집합 3의 수, 요소 2,2,1의 두 반복 그룹의 예는 다음과 같습니다. {{1,2} , {3,4}, {5}} 및 {{3,4}, {1,2}, {5}}. 그러나 나는 그것을 이해했다! 여기 내 해결책은 다음과 같습니다 : cpp.sh/67lwt 그것은 무엇입니까 : 두 번째 종류의 모든 스털링 번호를 구성하는 모든 집합을 나열하고 S {n, k} 모든 집합의 수를 씁니다 (S {n, 케이}). 입력은 n> = k 인 두 개의 양의 정수 n과 k로 구성됩니다. 소스 코드는 끔찍하지만 어쨌든 나는 프로그래밍에 익숙하지 않고 작동하기 때문에 행복하게 만 충분하다. 걱정 해주셔서 감사합니다! – Hewwho