close
標題:

程式設計 & 數學

aa.jpg

 

此文章來自奇摩知識+如有不便請留言告知

發問:

問題:老師給小華A群數字 (15個)46879891027462201058716111860216091607201026415002571又給小華B群數字 (35個)601585 203156735051657 145515702809 585 12774320 9621105 623 1280 13552260 550871 16001600 1410783 570911 800 15152310 ... 顯示更多 問題: 老師給小華A群數字 (15個) 468 798 910 2746 220 1058 716 1118 602 1609 1607 2010 264 1500 2571 又給小華B群數字 (35個) 601 585 2031 567 3505 1657 1455 1570 2809 585 1277 4320 962 1105 623 1280 1355 2260 550 871 1600 1600 1410 783 570 911 800 1515 2310 1690 1830 496 461 646 1840 老師要求小華選擇A群數字任意相加,接著選擇B群數字任意相加, 但A群數字相加之和,扣除B群數字相加之和,須等於88, 請問A群數字中需要哪些數字相加?B群數字中需要哪些數字相加? -------------------------------------------------------------------------------------------------- 請問這樣的excel 程式該如何設計? 或如何解答? 更新: A群任意數字相加 扣掉 B群任意數字相加,等於88

最佳解答:

我必須承認我不大會用Excel,不過我知道如何操作C語言,這題顯然用單純的暴力法是做不大出來的!!(2^50過大= =),但注意到每個數字的大小均不大,故我們能夠利用動態規劃(或稱做DP),方法大概是這樣,開兩個陣列儲存A,B兩集合中可以得到得子集元素和,並且要記錄路徑(此處將會使用到DP,簡言之,是一種遞迴的概念),然後,搜尋這兩個陣列中,是否有C,D使得C-D=88,有的話就由路徑回推其元素之挑選,也就是我們要的答案~:)

其他解答:

可以用規劃求解方式求一解,大概跑5分鐘 A 468 220 716 264 B 623 496 461|||||A群數字線性組合係數可為 1 或 0 B群數字線性組合係數可為 -1 或 0 直接用巢狀式計次迴圈寫程式: 組合數 = 2^15 * 2^35 = 2^50 ≒ 1.13*10^15 這個運算量對PC來說實在太大了 所以,需要先用數學方法大量降低以上次數 然後再寫程式 我想不到好方法,請各位數學專家費神吧.....FBEFE3C2E0474026
arrow
arrow

    njtnvdt 發表在 痞客邦 留言(0) 人氣()