Re: [問題] 樂透號碼最佳化的問題
看板Prob_Solve (計算數學 Problem Solving)作者AmosYang (Omoide wa Okkusenman!)時間13年前 (2011/02/27 11:31)推噓0(0推 0噓 1→)留言1則, 1人參與討論串9/9 (看更多)
※ 引述《bleed1979 (十三)》之銘言:
: 我試著先改成以下的情況,複製了之前計算過的method。
: 跑出的答案就是1600, choose: 1 2 3 4
: 不過我想可能要多生幾個case來測試,無法確認正確性。
: Bleed
: for(int i = 0; i < n; ++i) {
: if(i > 0) {
: method[i] = method[i - 1];
: }
copy 那組虛擬的解我認為是錯的,因為就 method[200] 而言,
0 的 bit pattern 所代表的號碼不應該讓購買者中 $200
且這裡用 i 當 method 的 index 很奇怪…
method 的 index 是獎金的金額
i 是下注獎卷的 index...
: for(int j = sum; j >= coin[i]; --j) {
: int k = j - coin[i];
: if(method[k].size()) {
: set<int> :: iterator it = method[k].begin();
: while(it != method[k].end()) {
: int new_int = *it | coin_bit[i];
: if(count_bit(new_int) <= 5) {
: method[j].insert(new_int);
: }
: ++it;
: }
: }
: }
: }
: Bleed
: ==
: 我剛看懂意思了,的確有盲點。
: 現在改一下程式碼,希望不要大改才好。
: Bleed
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 24.40.140.129
坦白說我覺得很困惑為什麼加上 method[i] = method[i - 1];
就可以跑出正確的答案 :D
(我手邊沒有 compiler + debugger, 沒法實測)
※ 編輯: AmosYang 來自: 24.40.140.129 (02/27 11:42)
我猜 method[i] = method[i - 1]; 是
method[coin[i]] = method[coin[i-1]] 的誤植 …
不過…還是很怪 :D
※ 編輯: AmosYang 來自: 24.40.140.129 (02/27 12:44)
→
02/27 12:57, , 1F
02/27 12:57, 1F
討論串 (同標題文章)
Prob_Solve 近期熱門文章
PTT數位生活區 即時熱門文章