假设张三的mp3里有1000首歌,现在希望设计一种随机算法来随机播放。与普通随机模式不同的是,张三希望每首歌被随机到的概率是与一首歌的豆瓣评分(0~10分)成正比的,如朴树的《平凡之路》评分为8.9分,逃跑计划的《夜空中最亮的星》评分为9.5分,则希望听《平凡之路》的概率与《夜空中最亮的星》的概率比为89:95。现在我们已知这1000首歌的豆瓣评分:
【考虑时间和空间效率】
(1)请设计一种随机算法来满足张三的需求。
(2)当mp3中歌曲数量为1001或者1000万时,随机算法是否仍然能很好地满足需求。
(3)基于张三对歌曲偏高与大众审美水平存在差异,假设歌曲的评分呈现不同的分布或极端情况下(①标准正态分布,②两极分化,③一超多强,④存在/不存在满分等等),随机算法是否仍然很好地满足需求。
(4)实际操作中,1000首歌中的部分曲目会不定期增减,部分歌曲的评分也须实时调整。此时,随机算法是否仍然很好地满足需求。