天天看點

一個堆積木的算法題,比較有意思,歡迎大家讨論

問題的來源是幫一個朋友改資料庫,要求是這樣的,60個題目,總分是100分,正确答案的分值有2分的 1.5分,其中分值的排列關系是随機的,請問如何設定答對題目,使得答題總分剛好為一個數值,如82分

我的解決辦法是:

用一個集合記錄判斷是正确的2分題,當發現期望總分和目前累加總分內插補點小于1.5時,因為最小機關是1.5,在2分集合中退出一個正确的2分,然後繼續周遊下去

雖然後來用上面辦法解決了這個問題,但是我覺得這個問題的解法不夠通用,有很多問題,對這個問題擴充了一下,大家一起讨論一下

一維的:和上面的題目一樣。用變量來描述一下這個問題

有m個元素,其中每個元素有1個value值,o<value></value>,value的取值有x,y,z...,按照value值m個元素排列是随機的,問如何用一次周遊m,而得到n個元素,這n個元素的value總和是W

二維的:其實就是俄羅斯方塊了,大家想象我們玩的俄羅斯方塊是不是這個道理

有m個元素,其中每個元素有1個value值對,o,value的取值有x,y,z...,按照value值m個元素排列是随機的,問如何用一次周遊m,而得到n個元素,這n個元素的value中,v1

的總和乘以v2的總和是W

n維的:不知道用什麼現實中的情況來描述了

有m個元素,其中每個元素有1個value值對,o,value的取值有x,y,z...,按照value值m個元素排列是随機的,問如何用一次周遊m,而得到n個元素,這n個元素的value中,v1

的總和乘以v2的總和乘以v3的總和...一直乘到vn的總和是W

呵呵,也許是我孤陋寡聞,上面這個題可能早有算法了,希望知道的朋友能告訴我一聲:)

一個堆積木的算法題,比較有意思,歡迎大家讨論

繼續閱讀