作者mantour (朱子)
看板Python
标题Re: [问题] 排列组合
时间Mon Oct 27 23:05:44 2008
※ 引述《ykjiang (York)》之铭言:
: 现在递回跟非递回版的执行速度又拉近了,执行时间几乎无差别:
: def gen0_2(n):
: I = list('ATCG')
: if n == 0:
: return ['']
: else:
: return [x+y for x in gen0_2(n-1) for y in I]
: def gen1_3(n):
: L = ['']
: I = list('ATCG')
: for i in xrange(n):
: L = [j+k for j in L for k in I]
: return L
def gen1_4(n):
L = ['']
I = list('ATCG')
for i in xrange(n):
L = [j+k for k in I for j in L]
return L
我测的结果是这样会再快一点点
: ※ 引述《ykjiang (York)》之铭言:
: : 好玩的是,非递回版调换回圈顺序後也变快几近一倍:
: : def gen1_2(n):
: : L = ['']
: : for i in xrange(n):
: : L = [j+k for j in 'ATCG' for k in L]
: : return L
: : 所以现在非递回版比递回版快一倍 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.213.158