日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python循環(huán)實現(xiàn)n的全排列功能

系統(tǒng) 1998 0

描述:

輸入一個大于0的整數(shù)n,輸出1到n的全排列:

例如:

            
n=3,輸出[[3, 2, 1], [2, 3, 1], [2, 1, 3], [3, 1, 2], [1, 3, 2], [1, 2, 3]]
n=4,輸出[[4, 3, 2, 1], [3, 4, 2, 1], [3, 2, 4, 1], [3, 2, 1, 4], [4, 2, 3, 1], [2, 4, 3, 1], [2, 3, 4, 1], [2, 3, 1, 4], [4, 2, 1, 3],
[2, 4, 1, 3], [2, 1, 4, 3], [2, 1, 3, 4], [4, 3, 1, 2], [3, 4, 1, 2], [3, 1, 4, 2], [3, 1, 2, 4], [4, 1, 3, 2], [1, 4, 3, 2],
[1, 3, 4, 2], [1, 3, 2, 4], [4, 1, 2, 3], [1, 4, 2, 3], [1, 2, 4, 3], [1, 2, 3, 4]]
          

思路:

            
為1時,結(jié)果為1
為2時,結(jié)果就是兩種:1,2 2,1(1的前后插入)
為3時,結(jié)果就是六種:1,2,3 1,3,2 3,2,1 (1,2的前中后插入)
3,2,1 2,3,1 2,1,3 (2,1的前中后插入)
          

代碼:

            
import copy
def full_arrange(n):
  data = [] # 中間結(jié)果
  res = [] # 最終結(jié)果
  if n == 1 :
    return 1
  res = [[1]]
  for i in range(2, n+1):
    for j in range(len(res)): # 遍歷res數(shù)組(二維數(shù)組)
      for x in range(len(res[j])+1): # 遍歷res數(shù)組中的元素(一維數(shù)組)
        data = copy.copy(res[j]) # 淺拷貝
        data.insert(x,i) # 在一維數(shù)組的不同位置插入元素,獲得新的數(shù)組
        res.append(data)
        x += 1
      j += 1
    # 刪除多余數(shù)組(原始數(shù)組) 最后保留的數(shù)據(jù)(一維數(shù)組的長度) == i
    while True:
      if len(res[0]) != i:
        res.remove(res[0])
      else:
        break
    i += 1
  return res
print(full_arrange(n))
          

總結(jié)

以上所述是小編給大家介紹的Python循環(huán)實現(xiàn)n的全排列功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 盐源县| 开封县| 依兰县| 米脂县| 永德县| 淅川县| 红安县| 赫章县| 崇礼县| 积石山| 获嘉县| 彰化市| 红安县| 中牟县| 勃利县| 高密市| 新津县| 肇州县| 丹东市| 集安市| 岗巴县| 横山县| 阿拉善盟| 曲靖市| 航空| 吉木萨尔县| 化隆| 沙田区| 和顺县| 景东| 丰原市| 平塘县| 保康县| 怀安县| 道孚县| 大丰市| 南岸区| 河间市| 黔江区| 岢岚县| 报价|