我目前正在開發一個播放列表播放器,而我正面臨一個問題。我的播放列表中有可變長度的空白,我想填充特殊的音頻文件。這些文件也具有可變長度,通常比我在播放列表中的間隙短。揹負算法,大容量
這聽起來像一個經典的揹包問題,所以我試圖實現這個算法。這適用於較小的差距,但每當我有30分鐘的差距時,該算法會使用極大的內存量。這是預期的,因爲即時通訊使用dynamic programming來解決問題。
揹包的容量爲{以毫秒爲單位},揹包項目的音頻文件的權重以毫秒爲單位。
這是非常無效的。所以我想知道如果我可以使用不同的算法,或者可以將重量和容量改變成更小的變量。到目前爲止,我正在考慮用任意數字來劃分一切,但如果我這樣做的話,我會失去精確度。
任何人有任何想法?
編輯:
我有大約500個填充填補空白。而改變球場是不可能的。 填料組應該有一個完美的解決方案。 我真的想要毫秒精度,但我可以在100毫秒以內生活。
你需要毫秒級的準確度嗎?如果是這樣,爲什麼?你是否控制了差距的長度? 有點上下文很長。 – patros
缺口*有*是否被最佳填充?也許你應該停下來,當新的差距低於一定的閾值。 – Geobits
這聽起來很奇怪。 30分鐘的差距從哪裏來?爲什麼它必須完美匹配?音頻文件可以很容易地被拉伸百分之幾,沒有任何明顯的差異,也許這有助於? – pentadecagon