背景故事:
所以今晚我开车去乐队练习。我的车有一个USB端口,你可以插入一个带有MP3文件的USB记忆棒,立体声就可以播放它们。我的手机上有大约100个MP3,所以我按下了“随机”按钮。所以从这里到乐队练习,它起了作用:
然后在回家的路上,它播放了
然后我在加油站停了下来。我装满了,回到车里,立体声再次响起。它玩了
我想,WTF?这个'随机'发生器有什么用?他们用什么作为种子,如果不是时间?汽车音响是如此紧密存在以至于它甚至无法使用C stdlib?有谁知道这种事情是怎么发生的?
答案 0 :(得分:2)
如果不看音乐播放器的代码,很难说。一些想法:
答案 1 :(得分:1)
MP3播放器在您选择随机选项时会生成随机播放列表,然后播放相同的播放列表。
唯一的“随机”部分是每次重新设置“随机”选项时播放列表都会发生变化。
例如,iPod shuffle mp3播放器的功能允许您重新播放歌曲以生成新的“随机”播放列表。
答案 2 :(得分:1)
重要的是要记住,如果没有良好的统计分析,我们的心理学就会发现这样一个事实,即即使它们不存在,我们也会发现它们(无论出于何种意图和目的)。
例如,如果您的iPod上有10首歌曲,那么当您播放2集中的所有10首歌曲时,很有可能两组中的曲目彼此相邻。我们的大脑连线到现场并注意到了。
如果你描述的模式是真的,那么是的,他们可能搞砸了他们的代码。每次关闭设备时,内部系统时间可能会重置,因此当您通过按“全部播放”而不是“打开”然后“全部播放”打开它时,它可能会以相同的顺序播放相同的音轨。或许时间不能用作种子。
或者,也许(不太可能)它是随机的。一个真正随机的序列最终将重复订单,特别是在如此小的100个集合中,它不会超出可能性的范围,您将在数据的子集中看到重复。
答案 3 :(得分:0)
控制随机化的嵌入式设备可能没有时钟。也许它使用轨道数作为种子或类似的东西。
如果您没有随机种子的外部源,例如来自时钟的读数,则当软件的所有内存都被重置时,软件将在每次启动时确定性地运行。