2017-04-09 7 views
-1

나는리스트의 각 요소는 하나 (5)의 사용 가능한 슬롯에 넣을 수카드 덱의 모든 순열을 생성 하시겠습니까?

[1,5,10,8,4...] 

특정 순서로 (52 개) 요소의 카드 덱 목록이 : 슬롯 1,2,3,4 또는 5 방법 5 슬롯의 모든 가능한 순열을 생성 할 수 있습니까? 예를 들어, 하나의 순열은 슬롯 1에있는 모든 52 개의 카드이고, 다른 하나는 슬롯 1의 첫 번째 카드이고, 두 번째 카드는 슬롯 2의 카드입니다. itertools의 순열 기능을 사용하려고 생각했지만 5 슬롯 개념을 적용하는 방법을 알아낼 수 없습니다.

+0

그래서 최대 5 개 부분으로 덱을 분할하고 싶습니까? 각 부분에 주문을 보관 하시겠습니까? 부품들 사이에요? 좀 더 구체적이어야합니다. 그리고 무엇보다 먼저 무엇을 시도 했습니까? 문제를 해결하려는 시도, 예상되는 결과 및 얻은 것을 보여주십시오. 그러면 우리가 도와 드리겠습니다! –

답변

1

내가 올바르게 이해한다면 갑판의 한 과제는 갑판의 각 요소를 숫자 1,2,3,4,5에 매핑하는 기능으로 볼 수 있습니다. 입력 값이 항상 같을 경우 52 요소 목록으로 나타낼 수 있습니다. 각 요소는 15 사이의 숫자이며 해당 요소가 할당 된 슬롯을 나타냅니다.

itertools의 product 기능이 도움이 될 수 있습니다.

for x in itertools.product((1,2,3,4,5), repeat=52): 
    print(x) 

그러나 생성 된 요소 수는 5^52=O(10^36)입니다. 이것은 많은 요소이며 시간 내에 인쇄하지 않을 것입니다. 백만 초를 인쇄하면 모든 것을 얻으려면 십억 년이 걸릴 것입니다.