Programming 板


LINE

※ 引述《makiyolove (暴力熊)》之銘言: : 在網路上看到的題目 : DNA序列是由A、T、C、G組成一串字串序列 : 舉例:agGCTGCAatGACAGTTGGG : 然後找出大於使用者輸入長度L : 包含C、G密度最高的序列串 : 此題解應輸出gGCTGC (假設L=5) : 我只有想到用暴力法 : 列出每一種組合 計算密度 比較大小 再輸出 : 應該有更快的方法可以用? : 懇請板友指教 想到一個作法,不確定有沒有問題,歡迎大家討論 step.1 假設此字串序列是s,長度是k, 先開一個同樣大小的陣列c[k],紀錄C、G出現的累積次數 s: a g G C T G C A a t G A C A G T T G G G c: 0 1 2 3 3 4 5 5 5 5 6 6 7 7 8 8 8 9 10 11 step.2 找出的序列長度要大於L,所以長度最小是 L' = L+1 計算長度是L'的序列中,包含C、G的數量 (因為長度一樣,所以C、G次數越多的密度越高) c'[x]=c[x]-c[x-(L'+1)]; s: a g G C T G C A a t G A C A G T T G G G c: 0 1 2 3 3 4 5 5 5 5 6 6 7 7 8 8 8 9 10 11 c': - - - - - 4 5 4 3 2 3 2 2 2 3 3 2 3 3 4 ^ step.3 把c'掃過一遍找出最大值(範例中的5) 所以 s': aGCTGC 是長度為L'的序列中密度最高的 step.4 再從此序列的頭尾開始擴張, 如果相鄰的是C、G,將其加入此序列s' 往前找到第一個不為C、G的就停止 往後也是找到不是C、G的就停 假設s'長度是m,其中C、G的數量是n,則密度是 n/m 如果隔壁的是C or G,加入後密度變成 (n+1)/(m+1) 如果隔壁的不是C、G,加入後密度變成 n/(m+1) 因為 n/(m+1) < n/m < (n+1)/(m+1) 這樣就可以找到密度最高的序列 但是還要再考慮到step.3最大值不只一個時,序列重疊的情況 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.204.36 ※ 編輯: MisterSmile 來自: 122.116.204.36 (05/30 14:13)
1F:推 march20:這 greedy 似乎成立: 如果多看一些會讓 66.75.255.220 05/30 18:32
2F:推 march20:密度變大, 那表示有一邊密度本來就比較大 66.75.255.220 05/30 18:32
3F:推 march20:那這邊沒道理不被選到 @@ 66.75.255.220 05/30 18:33
※ 編輯: MisterSmile 來自: 122.116.204.36 (05/31 14:32)
4F:推 seanwu:反例: CCCTTTCCC L=4 210.70.137.244 06/02 08:07
5F:→ seanwu:step 3中找到的,是CCCTT或TTCCC 210.70.137.244 06/02 08:07
6F:→ seanwu:這樣找到的答案是 3/5=0.6 210.70.137.244 06/02 08:08
7F:→ seanwu:但最大的應該是 6/9 = 0.667 210.70.137.244 06/02 08:08
8F:→ seanwu:而且step 4中不論是CCCTT或TTCCC都無法擴張 210.70.137.244 06/02 08:09
9F:推 march20:(還沒驗證)我找反例找很久, 總是差一個@@ 66.75.255.220 06/02 13:04
10F:推 march20:太強啦 XD 66.75.255.220 06/02 13:05
※ 編輯: MisterSmile 來自: 122.116.204.36 (06/02 23:52)
11F:→ MisterSmile:真的有反例,被抓到破綻XD 122.116.204.36 06/03 00:30







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP