※ 引述《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