Re: [IKA] 軍事分析器 (Firefox/火狐限定) (更新:ꔠ…

看板CGI-Game (CGI Game)作者 (年輕人)時間18年前 (2008/07/02 00:32), 編輯推噓6(609)
留言15則, 4人參與, 最新討論串2/2 (看更多)
想到一個解法 你另外寫一隻程式,function跟原來一樣 只是多一行,在最後一個for加一個 if (answer[0] !=0 && answer[1] !=0 &&...自己填) 這代表這個input有解,就return 1; else return 0; 在主程式裡加一個for int has_answer[6000]; (for int i = 80; i < 6000; i++ ){ has_answer[i] = your_function(i); } (for int i = 80; i < 6000; i++ ){ if (has_answer[i] == 1) cout << i << " has solution\n"; // 或者輸出到一個文字檔 } 接下來是改js 把上述80~6000有解的數字,放入int陣列,例如 int sol[]; sol[0] = 80; sol[1] = 158; sol[2] = 160; ..... 主程式改成 for(int i = 0; i < (sol的最大index); i++) { if ( (input % sol[i]) == 0) //相除餘數為零 your_function(input / sol[i], sol[i]); } 這樣一來,只要算sol[i]的解,結果都乘以input / sol[i] 就不用重複計算已經知道有解的整數倍的結果了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.168.217.123

07/02 00:37, , 1F
我寫的不好嗎? 哭哭
07/02 00:37, 1F
※ 編輯: youngkai 來自: 218.168.217.123 (07/02 00:39)

07/02 00:41, , 2F
一樓有發佈源碼嗎= =a
07/02 00:41, 2F

07/02 00:42, , 3F
1. open source的好用 2. 網頁的方便
07/02 00:42, 3F

07/02 00:42, , 4F
我也在想一些修改 改好了在丟上來
07/02 00:42, 4F

07/02 00:43, , 5F
我想到resursive的解法了,大致上原理差不多
07/02 00:43, 5F

07/02 00:44, , 6F
如果80有解,80的倍數必定有解,所以先mod有解的i
07/02 00:44, 6F

07/02 00:44, , 7F
如果是i的倍數,就不用跑那十幾個for-loop了
07/02 00:44, 7F

07/02 00:45, , 8F
不過這本來就是個np-hard問題 不用奢望他能跑太大的input
07/02 00:45, 8F

07/02 00:46, , 9F
怎樣設置一些(給使用者選擇)的限定條件讓他更實用才是重
07/02 00:46, 9F

07/02 00:46, , 10F
07/02 00:46, 10F

07/02 00:47, , 11F
我沒發原碼...我用的只是簡單的迴圈而已
07/02 00:47, 11F

07/02 00:48, , 12F
等改進後再來發好了 目前在新增功能
07/02 00:48, 12F

07/02 00:53, , 13F
因為是np-hard,所以用空間換時間是最好的解法
07/02 00:53, 13F

07/02 13:01, , 14F
基本上 1082以後所有偶數都有解........這樣幫助有限
07/02 13:01, 14F

07/02 13:28, , 15F
更新,用一些代碼取代最後一個兵種的for-loop計算。
07/02 13:28, 15F
文章代碼(AID): #18Qbm8HZ (CGI-Game)
文章代碼(AID): #18Qbm8HZ (CGI-Game)