Re: [問題] 排列組合

看板Python作者 (York)時間16年前 (2008/10/25 22:40), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串8/17 (看更多)
精益求精: 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)] ※ 引述《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

10/26 00:48, , 1F
我喜歡這個版本XD
10/26 00:48, 1F
文章代碼(AID): #190o_q3N (Python)
討論串 (同標題文章)
文章代碼(AID): #190o_q3N (Python)