Prob_Solve 板


LINE

※ 引述《shipship (Ship)》之銘言: : 最近在跑一個模擬,遇到一個最佳化問題請各位板大幫忙看看: : 現有一個對獎系統,從20個號碼中選5個做為這次的中獎號碼 : 有一群下注資料,格式如下: : 978 3 2 10 13 //獎金978元,買了三個號碼,分別為2,10,13 : 5921 2 1 14 : 8027 4 1 4 6 9 : 7931 4 5 9 10 15 //獎金7931元,買了四個號碼,分別為5,9,10,15 : 4957 2 2 16 : 中獎的條件是該客人所買的號碼全中(全部都在5個中獎號碼中出現) : 假設今日開獎號碼為1 2 4 10 13 16 : 則總獎金為978+4957 : 請求出,開出哪5個號碼,可以使得大家所得到的獎金最高? : 每個人可以買的號碼數量為2~5,資料筆數不超過六千 : 我想了好久,目前都出的演算法,分析一下都還是暴力解。 : 請板大有甚麼意見請踴躍討論 感謝 這個問題是NP, 可以很簡單的轉換為knapsack problem: 1. 對每一筆資料data[i]轉換為knapsack的物品, value就是獎金金額, 設weight為1 2. 對每一筆資料data[i], 將其對獎方式轉換為bitmask或array(參考上一篇) 那麼我們可以用很簡單的演算法算出, 要給哪五個號碼號碼才能對中最多筆 演算法如下: a) for i <= n do 將data[i]的對獎號碼轉換為array[i][20] b) for j = 1, j <= 20 do for i = 1, i <= n do sum[i] += arra[i][j] c) 最大的sum[i]即為中最多次的號碼 3. 回到knapsack problem, 因為不可能對中比最大的sum[i]還多次, 我們設knapsack problem中能帶走物品的總重為W = max{sum[i]} --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.14.188
1F:推 shipship:抱歉我看不懂a)將對獎資料轉換為array[i][20]是甚麼意思? 01/12 21:54
data[1] 1 4 15 -> array[1] 10010000000000100000 data[2] 10 12 19 -> array[2] 00000000010100000010 data[3] 3 7 11 19 -> array[3] 00100010001000000010 + ----------------------- sum 10110010011100100020 ^ max = sum[19] ※ 編輯: chubiei 來自: 111.83.24.144 (01/12 22:18) ※ 編輯: chubiei 來自: 111.83.24.144 (01/12 22:20)
2F:推 seanwu:嗯....你想說的是 sum[j] += arra[i][j] ? 01/12 23:04
3F:→ seanwu:關於... "要給哪五個號碼號碼才能對中最多筆" 01/12 23:07
4F:→ seanwu:下面那段演算法不是只是統計出現最多次的數字是哪"一"個嗎? 01/12 23:08
5F:推 seanwu:噢還有... 從 1. 中 "設weight為1" 來看... 01/12 23:11
6F:→ seanwu:所有物品的重量都是1? 那這樣的背包問題不能做嗎... 01/12 23:12
7F:→ shipship:我怎麼感覺你是在統計哪個數字出現最多次? 01/13 11:29
8F:推 ledia:這樣沒有解到 knapsack problem 啊 01/13 11:40
9F:→ gozule:給樓上,這是類似NPC證明中的reduce而已,並不是在解問題 01/18 22:29
10F:推 seanwu:reduce的方向...好像不太對? 01/19 04:10
11F:推 seanwu:舉個很爛的例子好了,我現在的問題是: 找n個數字中的最大值 01/19 04:13
12F:→ seanwu:那我設n個物品,weight皆為1,value為原數字的值 01/19 04:14
13F:→ seanwu:至於背包的總重限制,我設為1 01/19 04:15
14F:→ seanwu:所以我把找最大值這件事,reduce成knapsack problem了 01/19 04:16
15F:→ seanwu:所以找最大值很難,目前我們沒有多項式時間的做法 01/19 04:16
16F:→ ledia:我當然知道是 reduce, 但是 reduce 也要解得到那個問題啊 XD 01/19 14:55







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燈, 水草

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

TOP