程式師動動腦: HB與他的小電影大作戰!

 

大家總會覺得所謂演算法什麼的,好像是一種外星語言。那純粹是一種誤會,那一堆奇怪的符號語法,還原最終的目的,其實不過是用來解決日常生活大小事罷了(會用符號語法的原因純綷是因為工程師懶的打字),說在白一點就是解決問題的"撇步"。像是我今天跟HB閒聊到一個問題,直覺得就發現要靠演算法來解決,所以我又再仔細想了一下,居然發現不能用簡單求出最佳解。作為一個無聊的且優秀的程式員,自然會見獵心喜,不過,我不是程式員,最近也很忙,而且更不優秀,所以我把問題貼上來,讓大家一起來玩玩,這不定要寫什麼偉大的程式來解決,他需要是好的演算法,也許一個簡單的原則就可以破解了,請大家來挑戰一下吧!

問題:HB與他的小電影大作戰!




##ReadMore##因為硬碟快掛了,HB決定把他從動物星球頻道下載的400 Gb 一共500部小影片,從硬碟燒光碟出來備份,這些小影片大小不定,從0.2Gb-1.2Gb 不等,而一片DVD的容量是4.7 Gb 每片,每片可以裝好幾部片子,可是為了省光碟片,所以最好可以每片都湊滿4.7Gb,可是每部片子大小都不一樣,也無規則可尋,所以有很多種排法,但一定存在一個組合,可以用最少的光碟片,全部燒完全部的影片(應該近似於 400/4.7),而且最後一片光碟還可以保留最多空間。看起來好像很容易,如果影片子少的話,可以用暴力的窮舉法,計算所有的組合,就可以找出最佳解。但是500 部片子所能產生的組合數,是天文數字,所以用暴力是沒有辦法輕易解決的問題的,需要一個聰明的方法。


請大家動動腦,想想辦法救救的HB跟他的小影片吧!


留言

  1. winrar

    選擇僅儲存, 設定每個檔案大小為4.7GB

    不過實際上要用的時候, 得要所有壓縮檔一起解壓縮就是了.

    回覆刪除
  2. 這應該是用ga演算法or其他求最佳解的?
    因為這類似旅行員or背包的問題
    我也不是專業的,只是有聽過

    回覆刪除
  3. 這應該是用ga演算法or其他求最佳解的?
    因為這類似旅行員or背包的問題
    我也不是專業的,只是有聽過

    回覆刪除
  4. 板主回覆:
    嗯,這個方法我有想過,不過如果要取一個檔,就要還原400Gb 的資料,可能不容易,所以還是來想想辦法吧!

    回覆刪除

張貼留言