-1
我有52種元素的卡片組列表中特定的順序生成一副牌組的所有排列?
列表中的每個元素可以放在5中的一個可用時隙:時隙1,2,3,4或5 如何我可以生成5個插槽的所有可能的排列嗎?例如,一個排列是插槽1中的所有52個卡,另一個是插槽1中的第一個卡,插槽2中的第二個卡等等。 我一直在考慮使用itertools的排列函數,但我無法弄清楚如何將它應用於5插槽概念。
我有52種元素的卡片組列表中特定的順序生成一副牌組的所有排列?
列表中的每個元素可以放在5中的一個可用時隙:時隙1,2,3,4或5 如何我可以生成5個插槽的所有可能的排列嗎?例如,一個排列是插槽1中的所有52個卡,另一個是插槽1中的第一個卡,插槽2中的第二個卡等等。 我一直在考慮使用itertools的排列函數,但我無法弄清楚如何將它應用於5插槽概念。
如果我正確理解你的話,你的套牌的一個分配可以被看作是一個函數,它將每個元素從套牌映射到數字1,2,3,4,5
。鑑於輸入總是相同的,它可以表示爲52
元素的列表,其中每個元素是在1
和5
之間的數字,該數字指示該元素被分配到哪個槽。
itertools的product
函數可能會對您有所幫助。您可以將其稱爲:
for x in itertools.product((1,2,3,4,5), repeat=52):
print(x)
但是,生成的元素的數量將是5^52=O(10^36)
。這是很多元素,並且很可能你永遠無法及時完成打印。如果你每秒打印一百萬,那麼要花費十億年才能完成所有這些。
那麼,你想分成最多五個部分的甲板?你想保留每個部分的訂單嗎?部分之間?你必須更具體。首先,你有什麼嘗試?告訴我們您嘗試解決問題,預期產出以及您獲得的結果,然後我們可以幫助您! –