PTT
數位生活區
即時熱門文章
24小時內熱門文章
最新文章
熱門看板
看板列表
我的收藏
最近瀏覽
批踢踢 PTT 搜尋引擎
看板
[
Python
]
討論串
[問題] 排列組合
共 17 篇文章
排序:
最舊先
|
最新先
|
留言數
|
推文總分
內容預覽:
開啟
|
關閉
|
只限未讀
首頁
上一頁
1
2
3
4
下一頁
尾頁
#12
Re: [問題] 排列組合
推噓
1
(1推
0噓 4→
)
留言
5則,0人
參與
,
最新
作者
ykjiang
(York)
時間
16年前
發表
(2008/10/26 12:33)
,
編輯
資訊
0篇文章回應此文
0
內文有0個圖片
image
0
內文有0個連結
link
0
內容預覽:
其實遞迴版並不會比較慢,只要稍做調整:. def gen(n):. if n == 0:. return ['']. else:. return [x+y for x in gen(n-1) for y in 'ATCG']. 改變迴圈的順序,這是很基本的最佳化作法.... --.
※
發信站:
批
#11
Re: [問題] 排列組合
推噓
0
(0推
0噓 0→
)
留言
0則,0人
參與
,
最新
作者
ykjiang
(York)
時間
16年前
發表
(2008/10/26 12:18)
,
編輯
資訊
0篇文章回應此文
0
內文有0個圖片
image
0
內文有0個連結
link
0
內容預覽:
tmp 可以去掉:. def gen1(n):. L = ['']. for i in range(n):. L = [j+k for j in L for k in 'ATCG']. return L. 現在行數已經跟遞迴版相當了 :). --.
※
發信站:
批踢踢實業坊(ptt.cc)
. ◆
#10
Re: [問題] 排列組合
推噓
1
(1推
0噓 0→
)
留言
1則,0人
參與
,
最新
作者
mantour
(朱子)
時間
16年前
發表
(2008/10/26 10:36)
,
編輯
資訊
0篇文章回應此文
0
內文有0個圖片
image
0
內文有0個連結
link
0
內容預覽:
測n=10時. def gen1(n):. list=['']. for i in range(n):. tmp=[j+k for j in list for k in 'ATCG']. list=tmp. return list. 3.949s. 下面的版本在我的電腦上測n=10為17.545s.
#9
Re: [問題] 排列組合
推噓
3
(3推
0噓 5→
)
留言
8則,0人
參與
,
最新
作者
zhouer
( )
時間
16年前
發表
(2008/10/25 23:35)
,
編輯
資訊
0篇文章回應此文
0
內文有0個圖片
image
0
內文有0個連結
link
0
內容預覽:
我也是這麼覺得 :). 我剛測試了 n = 10 的 case. 精益求精版約 6.655s. 下面的版本約 2.621s. --.
※
發信站:
批踢踢實業坊(ptt.cc)
. ◆ From: 123.194.218.239.
#8
Re: [問題] 排列組合
推噓
1
(1推
0噓 0→
)
留言
1則,0人
參與
,
最新
作者
ykjiang
(York)
時間
16年前
發表
(2008/10/25 22:40)
,
編輯
資訊
0篇文章回應此文
0
內文有0個圖片
image
0
內文有0個連結
link
0
內容預覽:
精益求精:. 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 [
首頁
上一頁
1
2
3
4
下一頁
尾頁