-1
A
回答
1
首先,請注意,如果訂單很重要並且允許替換,您基本上有n
選項可供選擇每個元素(其中m
) - 並且您擁有的選擇量保持不變。
這意味着您有n*n*...*n = n^m
可能的組合。
生成它們,你可以使用遞歸:
Python代碼:(如果你不知道蟒蛇,就像它讀成僞代碼,這是很清楚)。
def generateAll(numbers, m, currentPermutation=[]):
if m == 0:
doSomething(currentPermutation)
return
for x in numbers:
currentPermutation.append(x)
generateAll(numbers, m-1, currentPermutation)
currentPermutation.pop()
例如,如果我們定義
def doSomething(l):
print str(l)
並運行
generateAll([1,2,3], 4)
輸出將打印所有組合與repalcements,其中順序的事項,從大小爲4 [1,2, 3]:
[1, 1, 1, 1]
[1, 1, 1, 2]
[1, 1, 1, 3]
[1, 1, 2, 1]
[1, 1, 2, 2]
[1, 1, 2, 3]
[1, 1, 3, 1]
[1, 1, 3, 2]
[1, 1, 3, 3]
[1, 2, 1, 1]
[1, 2, 1, 2]
[1, 2, 1, 3]
[1, 2, 2, 1]
[1, 2, 2, 2]
[1, 2, 2, 3]
[1, 2, 3, 1]
[1, 2, 3, 2]
[1, 2, 3, 3]
[1, 3, 1, 1]
[1, 3, 1, 2]
[1, 3, 1, 3]
[1, 3, 2, 1]
[1, 3, 2, 2]
[1, 3, 2, 3]
[1, 3, 3, 1]
[1, 3, 3, 2]
[1, 3, 3, 3]
[2, 1, 1, 1]
[2, 1, 1, 2]
[2, 1, 1, 3]
[2, 1, 2, 1]
[2, 1, 2, 2]
[2, 1, 2, 3]
[2, 1, 3, 1]
[2, 1, 3, 2]
[2, 1, 3, 3]
[2, 2, 1, 1]
[2, 2, 1, 2]
[2, 2, 1, 3]
[2, 2, 2, 1]
[2, 2, 2, 2]
[2, 2, 2, 3]
[2, 2, 3, 1]
[2, 2, 3, 2]
[2, 2, 3, 3]
[2, 3, 1, 1]
[2, 3, 1, 2]
[2, 3, 1, 3]
[2, 3, 2, 1]
[2, 3, 2, 2]
[2, 3, 2, 3]
[2, 3, 3, 1]
[2, 3, 3, 2]
[2, 3, 3, 3]
[3, 1, 1, 1]
[3, 1, 1, 2]
[3, 1, 1, 3]
[3, 1, 2, 1]
[3, 1, 2, 2]
[3, 1, 2, 3]
[3, 1, 3, 1]
[3, 1, 3, 2]
[3, 1, 3, 3]
[3, 2, 1, 1]
[3, 2, 1, 2]
[3, 2, 1, 3]
[3, 2, 2, 1]
[3, 2, 2, 2]
[3, 2, 2, 3]
[3, 2, 3, 1]
[3, 2, 3, 2]
[3, 2, 3, 3]
[3, 3, 1, 1]
[3, 3, 1, 2]
[3, 3, 1, 3]
[3, 3, 2, 1]
[3, 3, 2, 2]
[3, 3, 2, 3]
[3, 3, 3, 1]
[3, 3, 3, 2]
[3, 3, 3, 3]
相關問題
- 1. jquery所有的第一個孩子無論深度
- 2. 重新排列數組中的每一個第n個元素
- 3. D3js可摺疊樹使用深度第一種方式進入轉換
- 4. 有效的方法來拉一個字段的所有排列的計數
- 5. 按字符串的第n個字符排序列表c#
- 6. TSQL幫助 - 一種獲取行中第N列值的方法?
- 7. 打印k下一個按字典順序排列的n位數字排列
- 8. 所有可能的排列大n
- 9. 優化一種查找字符串的所有排列的方法
- 10. Python深度第一次搜索字典
- 11. 我怎麼排序有一種有效的方式使用Java 10^6位數字的排列
- 12. 根據第一列的數字排序
- 13. 深度第一個搜索錯誤?
- 14. 有沒有一種乾淨的方式來獲得使用BeautifulSoup的HTML表格的第n列?
- 15. CSS:隱藏UL的第一列表項與第二深度
- 16. Java - 我有一個字符串HashSet,我想以某種方式排序這些字符串的長度
- 17. PHP - 按第一個字母組排列
- 18. 程序忽略第一個數字後的所有數字
- 19. 按每個int的第一個數字排序int列表
- 20. 這種排序有一個名字嗎?
- 21. 使用python比較兩個列表。爲什麼Python比較第一個列表的第一個數字和第二個列表的所有數字?
- 22. WPF數據網格列排序一種方式
- 23. 排序列表的列表中具有深度超過2
- 24. 以這種方式選擇第一個div有什麼問題
- 25. 獲取所有從屬表的所有外鍵的一個表到第n級
- 26. 從數字列表生成所有唯一對,n選擇2
- 27. Awk - 返回列中第n個字開頭的模式
- 28. 301的各種深度
- 29. n個對象的排列(帶有重複項的排列)
- 30. 列表第N個素數的序言
(2,2,1)和(1,2,2)應該是g enerated? (訂單是否重要)? – amit
是的。訂單很重要。 –