回覆列表
  • 1 # 每日有趣影片精選

    你所說的加權隨機演算法

    一般應用在以下場景:有一個集合S,裡面比如有A,B,C,D這四項。這時我們想隨機從中抽取一項,但是抽取的機率不同,比如我們希望抽到A的機率是50%,抽到B和C的機率是20%,D的機率是10%。一般來說,我們可以給各項附一個權重,抽取的機率正比於這個權重。那麼上述集合就成了: {A:5,B:2,C:2,D:1}

    如果是這樣

    那隨機播放都不是真隨機,因為你每一首歌的權重不同,權重高的自然被播放到的機率打,反之相反。這樣一來就會出現一首歌會被播放很多次,或一首歌從不被播放。

    什麼是隨機

    系統可能按照自己的心情,在歌單中隨意抽取一首。

    隨機播放怎樣實現

    細心的可能發現,一首歌單中,每一首歌都是會被播放的,因為隨機播放的機制可能是,原理上實現每一首歌被抽到播放的機率相同。就是播放一首歌,系統記錄這首歌已播放,在下一次隨機抽取中就不會再抽到這首歌。

    所以播放器的隨機播放可能不是加權播放,這樣才不會導致一首歌被播放許多次,或一首歌從不被播放。

    希望理解。

  • 2 # 傳播Internet價值

    我認為不是。隨機播放功能沒必要搞加權平均這樣的演算法,播放列表在資料庫裡應該就是一個set集合,播放後給每首歌曲新增一個標記,再從播放列表裡取的時候判斷一下標記,取過的就不再取,重新取就可以了,當然,這個應該有非常成熟的技術實現,在效率和記憶體消耗上應該能做到極致!

  • 中秋節和大豐收的關聯?
  • 為什麼自己家種的大蒜長芽,菜市場的大蒜卻不長芽?