Python全排列
⑴ python作業:用分支語句實現對鍵盤輸入的四個數字按從小到大的順序排列輸出
def permutation(result, str, list):
"""
取一個數組的全排列
list:為輸入列表
str:傳空字元串
result: 為結果列表
"""
if len(list) == 1:
result.append(str + "," + list[0])
else:
for temp_str in list:
temp_list = list[:]
temp_list.remove(temp_str)
permutation(result, str + "," + temp_str, temp_list)
測試調用
[python] view plain
test = []
permutation(test,"",['cn_444934666','cn_363488188','cn_414478124'])
print test
⑵ Python全排列怎麼儲存
python最注重的就是格式,因為有格式,所以python沒有大括弧這樣的東西,也沒有語句結束詞,所以,下次提問把格式打上,大家都很忙,沒空研究你這個代碼
---------------
沒毛病啊,和你預想的一樣,代碼沒有改動
⑶ Python中用遞歸的思想求ABCDE的全排列
defp(s,res=[]):
#將字元c插入到數列ar中,會有多少種排列
defh(c,ar):
return[ar[:i]+[c]+ar[i:]foriinrange(len(ar)+1)]
#已有結果arr的基礎上,如果增加c字元,arr會變成多少種排列
defg(c,arr,res=[]):
ifarr==res==[]:
return[[c]]
elifarr==[]:
returnres
else:
returng(c,arr[1:],res+h(c,arr[0]))
#主體遞歸
ifs=='':
returnres
else:
returnp(s[1:],g(s[0],res))
if__name__=='__main__':
s='ABCDE'
forxinp(s):
print(''.join(x))
⑷ 用python實現全排列 遞增進位制數演算法和遞減進位制演算法。
這個簡單. 假設你要N個p t組合, p 和 t的范圍是 [pmin, pmax], [tmin, tmax]. :
import random
N = 100
pmin = 0
pmax = 1000
tmin = 0
tmax = 100
r = random.Random()
r.seed() #刷新隨即數種子
for i in range(N)
p = r.randint(pmin, pmax)
t = r.randint(rmin, rmax)
s = p*t
print p,t,s
可以把N pmin pmax tmin tmax,設置為你需要的參數。
⑸ 怎麼用python把 夢幻西遊 寫出缺少一個字的全排列
#-*-coding:utf-8-*-
str1=u'夢幻西遊'
foriinstr1:
list1=str1.split(i)
iflist1[0]==''orlist1[1]=='':
printlist1[0]+list1[1]
else:
printlist1[0]+''+list1[1]
>>>
幻西遊
夢 西遊
夢幻 游
夢幻西
⑹ python程序全排列運行不出結果
可以使用回溯法進行全排列,代碼如下:
#coding=utf-8
a=['a','b','c','d','e','f']
defcheck(b,index,ch):
foriinb:
ifi==ch:
returnFalse
returnTrue
defenum(b,index):
ifindex==len(a):
print(b)
else:
forqina:
ifcheck(b,index,q):
b=b+q
enum(b,index+1)
b=b[0:-1]
if__name__=='__main__':
b=''
enum(b,0)
運行結果:
⑺ python全排列代碼,求解釋
defperm(l):
#定義自定義函數函數名為perm參數為l當傳入參數時l等於該參數
if(len(l)<=1):
#if語句如果傳入的參數l的長度小於等於1(也就是0)則運行下面代碼否則跳過該if##語句
return[l]
#返回列表[l]此處為遞歸的終止
r=[]
#定義列表並初始化r
foriinrange(len(l)):
#for循環(c語言常這么說)迭代i的變化范圍為0到l(字母L)的長度-1
s=l[:i]+l[i+1:]
#將l的前三項以及l的第i+1後的字串賦給s
p=perm(s)
#遞歸將s做perm的處理遞歸請網路
forxinp:
#迭代p列表
r.append(l[i:i+1]+x)
#將l的第i項添加進r列表
returnr
#返回r列表
函數功能:將傳入perm()的字串、列表等參數進行全排列 並返回全排列後的列表
#遞歸不是人的思考方式…