推 superGA:我喜歡這個版本XD 10/26 00:48
※ 引述《ykjiang (York)》之銘言:
: 剛剛發現 print 太頻繁,拖慢了整個速度,修改如下:
: def decode(x,n):
: s = []
: base="ATCG"
: for i in xrange(n):
: s += base[x%4]
: x /= 4
: return "".join(s)
: def gen(n):
: return [decode(x,n) for x in xrange(4**n)]
: ※ 引述《ykjiang (York)》之銘言:
: : 不用遞迴可以活得更好,尤其在 n 太大(e.g. > 6)的情況:
: : def decode(x,n):
: : s = ""
: : base="ATCG"
: : for i in xrange(n):
: : s += base[x%4]
: : x /= 4
: : return s
: : def gen(n):
: : for x in xrange(4**n):
: : print decode(x,n),
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.59.19.38
精益求精:
def mod4(x,n):
for i in xrange(n):
yield x%4
x /= 4
def decode(x,n):
return "".join(["ATCG"[x] for x in mod4(x,n)])
def gen(n):
return [decode(x,n) for x in xrange(4**n)]