91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python循環實現n的全排列功能

發布時間:2020-08-25 22:35:03 來源:腳本之家 閱讀:174 作者:wuhen_n 欄目:開發技術

描述:

輸入一個大于0的整數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時,結果為1
為2時,結果就是兩種:1,2 2,1(1的前后插入)
為3時,結果就是六種: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 = [] # 中間結果
  res = [] # 最終結果
  if n == 1 :
    return 1
  res = [[1]]
  for i in range(2, n+1):
    for j in range(len(res)): # 遍歷res數組(二維數組)
      for x in range(len(res[j])+1): # 遍歷res數組中的元素(一維數組)
        data = copy.copy(res[j]) # 淺拷貝
        data.insert(x,i) # 在一維數組的不同位置插入元素,獲得新的數組
        res.append(data)
        x += 1
      j += 1
    # 刪除多余數組(原始數組) 最后保留的數據(一維數組的長度) == i
    while True:
      if len(res[0]) != i:
        res.remove(res[0])
      else:
        break
    i += 1
  return res
print(full_arrange(n))

總結

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

珲春市| 凤冈县| 泰兴市| 内黄县| 建水县| 丰都县| 丽水市| 屏东县| 呈贡县| 奉化市| 南投县| 邓州市| 甘谷县| 双柏县| 邵武市| 营山县| 客服| 惠州市| 贵溪市| 威宁| 淄博市| 岳池县| 朝阳县| 章丘市| 云浮市| 贵州省| 全州县| 韶关市| 泰安市| 建始县| 江山市| 阿拉善盟| 通州市| 鄂州市| 原阳县| 丰镇市| 安福县| 辛集市| 沾益县| 昌邑市| 万荣县|