【发布时间】:2009-11-24 02:20:19
【问题描述】:
我一直在使用 Ruby 开发 MPD 前端,能够播放随机专辑。
album = all[(rand*all.length).floor]
其中all是库中所有专辑名称的数组,选择要播放的专辑。
这很有效,但是,我发现它播放某些专辑的次数比其他专辑多,有时非常明显(我已经看到它连续播放同一张专辑两次,不止一次,我的图书馆有几百张专辑,所以这在统计上应该非常不太可能发生),另一方面,很多专辑永远不会播放。
有什么方法可以让我获得更多随机数?是否有一个 gem 可以实现更好的随机数算法?我需要更换种子吗?
【问题讨论】:
-
“非常”不太可能,不。例如,如果您有 300 张专辑,那么连续两次播放相同内容的机会大约为 300 分之一...
-
实际上很有可能,请参阅“生日悖论”:en.wikipedia.org/wiki/Birthday_problem 在 365 个可能的生日中,在随机的 23 人组中,至少有两个人的概率超过 50%生日相同。翻译成歌曲,如果你从 365 歌曲集合中随机播放 23 首歌曲,那么同一首歌曲出现两次的几率超过 50%。在两小时/40 首歌曲中,您有约 12% 的机会连续两次获得同一首歌曲。这是随机性不太直观的影响之一 :)
-
j-g-faustus,这就是为什么我需要更多地学习统计学!感谢您发布此内容,并感谢其他所有在答案中发布的人