Random 创建一个不那么随机的数字生成器有多难?

Random 创建一个不那么随机的数字生成器有多难?,random,Random,背景故事: 所以今天晚上我开车去乐队练习。我的车有一个USB接口,你可以在上面插入一个带有MP3文件的U盘,立体声系统就会播放这些文件。我的手杖上有大约100个MP3,所以我按下了“随机”按钮。从这里到乐队练习,它演奏: 第22轨道 第45轨道 轨道4 第11轨道 轨道87 第66轨道 轨道98 然后在回家的路上,它开始演奏 第16轨道 第27轨道 第33轨道 然后我在加油站停了下来。我加满油,回到车里,音响又响了起来。它播放 第22轨道 第45轨道 轨道4 第11轨道 轨道87 我

背景故事:

所以今天晚上我开车去乐队练习。我的车有一个USB接口,你可以在上面插入一个带有MP3文件的U盘,立体声系统就会播放这些文件。我的手杖上有大约100个MP3,所以我按下了“随机”按钮。从这里到乐队练习,它演奏:

  • 第22轨道
  • 第45轨道
  • 轨道4
  • 第11轨道
  • 轨道87
  • 第66轨道
  • 轨道98
然后在回家的路上,它开始演奏

  • 第16轨道
  • 第27轨道
  • 第33轨道
然后我在加油站停了下来。我加满油,回到车里,音响又响了起来。它播放

  • 第22轨道
  • 第45轨道
  • 轨道4
  • 第11轨道
  • 轨道87

我想,WTF?这个“随机”发生器是怎么回事?他们用什么作为种子,如果不是时间的话?汽车音响的内存是否太少,以至于不能使用C标准磁带库?有人知道这种事情是怎么发生的吗?

不看音乐播放器的代码就很难说了。一些想法:

  • 可能是它创建了一个随机播放列表,然后在开始时再次启动播放列表。例如,它随后重复的随机序列,而不是从其随机数生成器中独立得出相同的序列两次
  • 或者,当然,它是利用时间作为种子,它的时钟是混乱的,有时读取0或什么,导致重复序列
  • 或者(抱歉)观察错误::-)
    不看音乐播放器的代码就很难说了。一些想法:

  • 可能是它创建了一个随机播放列表,然后在开始时再次启动播放列表。例如,它随后重复的随机序列,而不是从其随机数生成器中独立得出相同的序列两次
  • 或者,当然,它是利用时间作为种子,它的时钟是混乱的,有时读取0或什么,导致重复序列
  • 或者(抱歉)观察错误::-)
    可能是控制随机化的嵌入式设备没有时钟。也许它使用轨道的数量作为种子或类似的东西


    如果您没有随机种子的外部来源,例如时钟读数,则软件在其所有内存重置后,每次启动时都会表现出决定性的行为。

    可能是控制随机化的嵌入式设备没有时钟。也许它使用轨道的数量作为种子或类似的东西


    如果您没有随机种子的外部来源,例如时钟读数,则软件在所有内存重置后,每次启动时都会表现出决定性的行为。

    当您选择随机选项时,MP3播放器倾向于生成随机播放列表,然后播放相同的播放列表

    唯一的“随机”部分是,每次重新设置“随机”选项时,播放列表都会更改


    例如,iPod shuffle mp3播放器具有一项功能,允许您重新洗牌歌曲以生成新的“随机”播放列表。

    当您选择随机选项时,mp3播放器会生成随机播放列表,然后播放相同的播放列表

    唯一的“随机”部分是,每次重新设置“随机”选项时,播放列表都会更改


    例如,iPod shuffle mp3播放器具有一项功能,允许您重新播放歌曲,以生成新的“随机”播放列表。

    重要的是要记住,如果没有良好的统计分析,我们的心理会导致这样一个事实,即即使模式不存在,我们也会发现模式(出于所有目的)

    例如,如果您的iPod上有10首歌曲,那么当您在两组中播放所有10首歌曲时,两组中的曲目很可能相邻。我们的大脑会发现并注意到这一点

    如果您描述的模式是正确的,那么是的,他们可能会稍微弄乱他们的代码。可能每次设备断电时,内部系统时间都会重置,因此当您通过按“全部播放”而不是“打开”来打开设备时,则“全部播放”可能会以相同的顺序播放相同的曲目。也许时间不是一粒种子


    或者,也许(不太可能)它是随机的。一个真正的随机序列最终会重复顺序,特别是在这样一个100个的小集合中,你会在数据子集中看到重复的可能性并不超出范围。

    重要的是要记住,如果没有良好的统计分析,我们的心理学会导致这样一个事实,即即使模式不存在,我们也会发现模式(出于所有意图和目的)

    例如,如果你的iPod上有10首歌曲,那么当你在两组中播放所有10首歌曲时,两组中都会出现相邻的曲目。我们的大脑会发现并注意到这一点

    如果您所描述的模式是正确的,那么是的,他们可能会把代码弄乱一点。也许每次设备断电时,内部系统时间都会重置,因此当您通过按“全部播放”而不是“打开”来打开它时,然后按“全部播放”可能会以相同的顺序播放相同的曲目。或者时间可能不是种子。


    或者,可能(不太可能)它是随机的。一个真正随机的序列最终会重复订单,特别是在这样一个100人的小集合中,它并不超出您在数据子集中看到重复的可能性范围。

    您不应该关注周围的流量吗?:)功能是根据价格启用的。这不是“猜猜我汽车的MP3播放器是如何工作的”—溢出。只是愚蠢的程序员?我的程序员按字母顺序播放专辑中的曲目!你不应该在意周围的交通吗?:)功能是根据价格启用的。这不是“猜猜我汽车的MP3播放器是如何工作的”—溢出。只是愚蠢的程序员?我的程序员用