2012-10-31 4 views
5

배열이 Card 개 있습니다. 내가 생각하고이 기준에서 가능한 모든 조합을 찾는 방법은 무엇입니까?

Card[] allCards; 

다음과 같은 조건에서이 카드의 모든 가능한 조합을 얻을 수 있습니다 :

  • 조합의 모든

    3 개 카드의 최소 필요합니다.
  • 조합에는 카드 한도가 없습니다 (따라서 총 15 개의 카드가있는 경우 15 개의 카드 조합, 13 개, 10 개의 조합 등이 있음).

대학생의 경우이 작업을 더 쉽게 수행 할 수있는 환상적인 라이브러리를 사용하지 않아야합니다.

필자는 쌍으로했습니다.하지만 제한이 없다는 것을 고려하면 일반적으로 수행 할 알고리즘은 작동하지 않습니다.

그것은 꽤 많은 사람들이 파이썬 여기를 요청할 것입니다 : Find all possible combinations

어떤 아이디어? 코드 또는 기타를 원하지 않습니다. 알고리즘/아이디어가 없어졌습니다. 나는 두 개의 루프 (다른 내 하나)하여 쌍을 만들 수 있습니다

내 문제 (자세한). 나는 3 개의 고리 (다른 고리 안에 또 하나의 고리)를 가짐으로써 삼중 항을 만들 수있다.

하지만 이러한 특정 문제가 작업을 수행하는 방법을 모르기 때문에 :

  • 배열 (15 개) 카드가 어떤 경우에? 나는 15 개의 루프를 쓸 수 없다. ...
  • 그리고 물론 14, 13, 12 루프까지 내려 가야한다. (왜냐하면 모든 조합은 각각 15 개 요소가 아니기 때문에 14 개 조합이 가능하기 때문이다. , 15 개 요소 배열로 작업 할 때 13 개, 12 개 요소)

일부 조합을 찾을 수는 있지만 동적으로 찾을 수는 없습니다.

+0

효율성을 걱정하기 전에 (적어도 작은 입력 배열로) 작동하는 것을 시작하는 것이 좋습니다. 모든 쌍을 생성 할 수 있다면이를 사용하여 모든 트리플을 생성 할 수 있습니까? –

+0

코드가 아닌 경우 찾고있는 것이 확실하지 않습니다. 이미 Google과 Stack Overflow에서 여러 결과를 뒤집는 "모든 조합 목록"이 필요합니다. 문제를 해결할 수없는 구체적인 이유가 있습니까? – Grambot

+1

'이 카드들을 가능한 모든 조합으로 만드십시오 '라는 것이 정확히 무엇입니까? 결과를 출력해야하거나 간단히 카운트를 표시해야합니까? 거기에는 큰 차이가 있습니다. –

답변

관련 문제