日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python實現全排列代碼(回溯、深度優先搜索)

瀏覽:209日期:2022-08-06 08:40:29

從n個不同元素中任取m(m≤n)個元素,按照一定的順序排列起來,叫做從n個不同元素中取出m個元素的一個排列。當m=n時所有的排列情況叫全排列。

公式:全排列數f(n)=n!(定義0!=1)

1 遞歸實現全排列(回溯思想)

1.1 思想

舉個例子,比如你要對a,b,c三個字符進行全排列,那么它的全排列有abc,acb,bac,bca,cba,cab這六種可能就是當指針指向第一個元素a時,它可以是其本身a(即和自己進行交換),還可以和b,c進行交換,故有3種可能,當第一個元素a確定以后,指針移向第二位置,第二個位置可以和其本身b及其后的元素c進行交換,又可以形成兩種排列,當指針指向第三個元素c的時候,這個時候其后沒有元素了,此時,則確定了一組排列,輸出。但是每次輸出后要把數組恢復為原來的樣子。

python實現全排列代碼(回溯、深度優先搜索)

1.2 python實現

def permutations(arr, position, end): if position == end: print(arr) else: for index in range(position, end): arr[index], arr[position] = arr[position], arr[index] permutations(arr, position + 1, end) arr[index], arr[position] = arr[position], arr[index] # 還原到交換前的狀態,為了進行下一次交換 arr = [1, 2, 3, 4]permutations(arr, 0, len(arr))

2 深度優先搜索(DFS)實現全排列

2.1 思想

定義全排列問題:輸入一個長度為n的列表arr,輸出arr的全排列。

(1)首先可以確定的是,每一種全排列的結果中包含的列表長度均是n。想象面前有n個空盒子,現在要把這n個數放到這些空盒子里去,每個盒子只能放一個數。那么第一個盒子中可以放的選擇是n種,可以使用一個循環來逐個嘗試。

for index in range(0, len(arr)):temp[position] = arr[index]

(2)第一個盒子放完后,就該往第二個盒子里放了。假設第一個盒子里放的是arr的第一個數,那么第二個盒子就只能放第2~n個數了(不能重復)。為此引入visit列表用來標記arr中哪些數字被使用過了。初始化:

visit = [True, True, True, True]

這樣,當第一個位置已經使用過時,就在visit里做標記:visit = [False, True, True, True]

因此放第一個盒子的代碼可以改寫如下:

for index in range(0, len(arr)): if visit[index] == True: temp[position] = arr[index] visit[index] = False

(3)當第k個盒子處理完畢后,處理下一個盒子直接調用dfs(k+1)即可,也就是遞歸調用。解決了當下該如何做,下一步也就知道怎么做了。

(4)遞歸調用的一定要注意的問題是遞歸調用的出口,否則循環調用下去程序會崩潰無法運行。在這個問題中什么時候結束遞歸調用呢?答案是當這n個盒子都放滿了,即處理到第n+1個盒子時結束調用,同時輸出此時的排列結果。

2.2 python實現

visit = [True, True, True, True]temp = ['' for x in range(0, 4)] def dfs(position): # 遞歸出口 if position == len(arr): print(temp) return # 遞歸主體 for index in range(0, len(arr)): if visit[index] == True: temp[position] = arr[index] visit[index] = False # 試探 dfs(position + 1) visit[index] = True # 回溯。非常重要 arr = [1, 2, 3, 4]dfs(0)

注釋了“非常重要”的語句是不能省略的,省略后僅出現[1, 2, 3, 4]一條結果。dfs(k+1)前后的兩條語句分別稱之為試探和回溯。

3 combination和permutations函數的區別

permutations方法重在排列:

import itertoolsn=3a=[str(i) for i in range(n)]s=''s=s.join(a)for i in itertools.permutations(s,n): print (’’.join(i)) # 結果 012021102120201210

combinations方法重在組合:

import itertoolsn=3a=[str(i) for i in range(n)]s=''s=s.join(a)for i in itertools.combinations(s,n): print (’’.join(i)) # 結果 012

以上這篇python實現全排列代碼(回溯、深度優先搜索)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品黑丝在线播放| 日本精品另类| 日韩精品一区二区三区中文在线| av中文资源在线资源免费观看| 亚洲专区在线| 亚洲一区激情| 999在线观看精品免费不卡网站| 精品欧美一区二区三区在线观看| 国产精品99久久精品| 国模大尺度视频一区二区| 免费一区二区三区在线视频| 麻豆国产精品777777在线| 欧美日韩黄网站| 人人爱人人干婷婷丁香亚洲| 日韩精品国产欧美| 日韩精品成人在线观看| 日韩二区在线观看| 婷婷综合六月| 影音国产精品| 啪啪亚洲精品| 福利精品在线| 91看片一区| 一区视频在线| 日本在线不卡视频一二三区| 欧美久久亚洲| 欧美另类综合| 日韩精品视频一区二区三区| 福利一区二区免费视频| 丝袜美腿亚洲色图| 精品久久影院| 青青草精品视频| 欧美va天堂在线| 人人爱人人干婷婷丁香亚洲| 日韩深夜视频| 国产经典一区| 午夜在线一区| 99久久99视频只有精品| 国产精品色婷婷在线观看| 午夜日韩av| 久久精品123| 老司机精品视频网| 国产私拍福利精品视频二区| 亚洲欧美视频一区二区三区| 免费高潮视频95在线观看网站| 日本99精品| 乱人伦精品视频在线观看| 日韩在线短视频| 欧美一级二区| 麻豆久久精品| 久久影院一区| 中文字幕在线免费观看视频| 日韩精品欧美大片| 老牛国产精品一区的观看方式| 成人福利av| 精品亚洲a∨一区二区三区18| 日韩av网站在线免费观看| 麻豆9191精品国产| 午夜一级在线看亚洲| 欧美日韩四区| 国产精品色网| 亚洲一区欧美二区| 国产精品美女久久久浪潮软件| 岛国av免费在线观看| 久久精品一区二区三区中文字幕| 国产黄色精品| 精品视频一区二区三区在线观看| 久久99久久久精品欧美| 麻豆国产精品视频| 四虎成人av| 国产精品亚洲片在线播放| 99久久精品费精品国产| 性欧美xxxx免费岛国不卡电影| 色婷婷久久久| 久久午夜视频| 欧美欧美黄在线二区| 精品日韩一区| 91九色精品国产一区二区| 国产美女久久| 999在线观看精品免费不卡网站| 欧美精品中文字幕亚洲专区| 久久中文在线| 肉色欧美久久久久久久免费看| 一区二区自拍| 国产精品手机在线播放| 国产一区二区三区不卡视频网站 | 99久久亚洲精品蜜臀| 人在线成免费视频| 麻豆精品91| 国产自产自拍视频在线观看| 久久香蕉精品| 亚洲成av在线| 欧美日韩调教| 黄色亚洲大片免费在线观看| 国精品产品一区| 国产精品99精品一区二区三区∴| 日韩一区三区| 亚洲一二av| 免费视频一区二区三区在线观看 | 久久狠狠婷婷| 91av亚洲| 亚洲高清激情| 麻豆精品蜜桃| aⅴ色国产欧美| 欧美日韩在线观看首页| 精品在线网站观看| 国产精区一区二区| 免费毛片在线不卡| 日韩黄色大片| 国际精品欧美精品| 天堂成人免费av电影一区| 国产一区二区高清| 国产精品一二| 在线视频亚洲| 欧美一级一区| 国产精品一级| 日本欧美大码aⅴ在线播放| 高清一区二区三区av| 国产精品99视频| 久久高清一区| 99国产精品一区二区| 久久夜夜操妹子| 亚洲一区二区网站| 午夜久久av| 精品一区二区三区中文字幕在线| 巨乳诱惑日韩免费av| 国产一区二区三区不卡视频网站 | 欧美另类综合| 国产欧美精品| 麻豆视频观看网址久久| 天堂精品久久久久| 99精品综合| 久久国产电影| 综合亚洲视频| 国产精品sm| 五月婷婷六月综合| 日本伊人久久| 桃色av一区二区| 国产一区二区三区成人欧美日韩在线观看 | 日韩毛片视频| 国产一区二区三区四区五区传媒| 亚洲三级国产| 一区在线免费| 久久字幕精品一区| 久久香蕉国产| 秋霞影视一区二区三区| 久久精品国产免费| 亚洲字幕久久| 福利一区和二区| 99精品一区| 首页亚洲欧美制服丝腿| 91久久久久| 中文日韩在线| 日本成人中文字幕| 国产999精品在线观看| 亚洲手机在线| 国产精品久久乐| 日本在线精品| 日韩成人精品一区二区三区| 少妇精品导航| 99久久九九| 日韩国产在线一| 久久久天天操| 国产毛片精品| 欧美日韩四区| 久久亚洲黄色| 日韩欧美中文在线观看| 国产精品日韩精品在线播放| 国产精品一区亚洲| 久久www成人_看片免费不卡| 97精品国产| yellow在线观看网址| 久久理论电影| 国产精品一在线观看| 一区二区精彩视频| 另类小说一区二区三区| 久久av影院| 国产模特精品视频久久久久| 综合激情网...| 欧美在线观看视频一区| 在线人成日本视频| 亚洲伊人精品酒店| 欧美精品一区二区三区精品| 亚洲欧洲另类| 中文字幕色婷婷在线视频| 水野朝阳av一区二区三区| 欧美日韩国产探花| 日韩久久一区| 中文日韩在线| 亚洲最新无码中文字幕久久 | 欧美日韩一区二区国产| 热三久草你在线| 久久精品国产在热久久| 国产精品任我爽爆在线播放 | 日韩有吗在线观看| 四季av一区二区凹凸精品| 日韩久久视频| 麻豆久久一区| 亚洲资源在线| 欧美日韩水蜜桃| 久久中文字幕导航|