本文转自微信公众号:爱范儿(id:ifanr)。未经授权,不得转载。
下班了,又一次走进熟悉的地铁站,听着已经听过无数遍哐当哐当的地铁轨道声,你突然觉得每天的日子有点乏味和单调,就像太阳每天从东边升起,又从西边落下。
戴上耳机,打开你最喜欢的歌单,就像往常那样。你点下随机播放的按钮,希望把掌控权交给播放器和算法,让它们带给你一点未知的新鲜。
你有没有想过,随机播放算法究竟是如何给我们呈现一个随机歌单的?
「真随机」还是「伪随机」
历史上最经典的随机音乐播放器,应该还要数 iPod Shuffle。
2005 年的时候,苹果公司推出了经典的 iPod Shuffle,iPod Shuffle 在当时来说可以算是一个异类,那时候的音乐播放器(还在直接叫 MP3 的时代)基本上都已经有了一块用来显示音乐信息的屏幕,用户可以自由的选择自己喜欢的音乐,甚至有些 MP3 还能播放视频,比如 2006 年魅族推出的 miniplayer M6 已经搭载了 2.4 英寸显示屏。
而 iPod Shuffle 没有屏幕,整体比起苹果自家的 iPad Nano 来说也来的简陋。但最大的问题是,用户如何选择自己喜欢的歌曲?
答案是随机列表,你可以通过 iTunes 同步你喜欢的音乐,也可以直接同步一个你喜欢的播放列表,但是在 iPod Shuffle 上,你所能获取的最大感受是「随机播放的魅力」。
实际上,我们所说的「随机播放」常见的方式有两种,一种叫「Shuffle」,一种叫「Random」。
洗牌算法. 图片来自:9to5Mac
Shuffle 一般叫做「洗牌算法」,它的原理是像扑克洗牌一样,将不同数量的扑克牌进行随机排列就能得到一个乱序的顺序。随机播放歌单也是如此,每次播放的时候会将这个列表中的歌曲进行洗牌,从而获得一个乱序的播放,也就是「伪随机」算法。
而 Random 则是真正的随机播放,也就是说每次切换音乐都是独立的未知数,会随机到不同的音乐,就像「抓阄」一样,它没有列表的概念,所以没有上一首和下一首的概念,是「真随机」算法。
怎么判断是「真随机」还是「伪随机」,其实只要按下「上一首」就知道了,如果切换到是你刚才听过的那一首,那就是「伪随机」的洗牌算法,如果是每次都在切换不同的歌,那么就是「真随机」算法。
洗牌算法本质来自洗扑克牌. 图片来自:Phys.org
这两种哪种方法更好一些?对于目前的用户来说,洗牌算法要更能接受一些,理论上它更加具备可控性,又能满足用户乱序播放的要求,还能防止重复听到一首歌的可能性。