Random 我是否可以使用之前的RNG数据预测下一次滚动的概率为某个值?

Random 我是否可以使用之前的RNG数据预测下一次滚动的概率为某个值?,random,statistics,probability,Random,Statistics,Probability,假设您有一个随机数生成器,该生成器输出一个包含1000个范围为00.00到99.99(例如07.81、84.30)的随机数的先前数据集。每个“滚动”都是离散的,独立于之前的所有滚动 从这个数据集,是否有可能计算出下一个“10”卷将包含两个25.00-50.00的案例,三个50.00-75.00的案例,等等的概率?对于一个真正的RNG,答案是否定的——这就是它作为RNG的区别。试图根据先前的结果预测独立的随机事件被称为 然而,计算机几乎总是使用伪随机数生成器(PRNG),它使用确定性算法(连同种子

假设您有一个随机数生成器,该生成器输出一个包含1000个范围为00.00到99.99(例如07.81、84.30)的随机数的先前数据集。每个“滚动”都是离散的,独立于之前的所有滚动


从这个数据集,是否有可能计算出下一个“10”卷将包含两个25.00-50.00的案例,三个50.00-75.00的案例,等等的概率?

对于一个真正的RNG,答案是否定的——这就是它作为RNG的区别。试图根据先前的结果预测独立的随机事件被称为

然而,计算机几乎总是使用伪随机数生成器(PRNG),它使用确定性算法(连同种子)生成序列中的下一个数字,使其看起来是随机的

它使用一种跟随数字“环”的算法来实现这一点(把它想象成一条非常长的重复的数字轨迹——它是确定的,但以一种看起来随机的方式分散)。种子用于确定此环的起始位置。每次调用next()获取一个新的随机数时,实际上只是返回序列中的下一个数(通常该数与某个值(如1000)进行模运算,使得该数介于某个请求的范围之间)


从这个意义上说,你已经找到了问题的答案。如果你知道种子,那么它就不是随机的——你可以100%准确地预测接下来会发生什么。如果你不知道种子,那么你需要专注于确定哪些种子可以生成你迄今为止看到的数字序列(这是一个更难的问题)。

这绝不是一个编程问题,而是一个随机问题。但是:正如您自己所指出的,您的随机数生成器需要遵循一些模型才能使其有意义。如果你不知道这个模型,那么,做一个假设,如果假设是错误的,那么就接受它。我投票结束这个问题,因为这绝不是一个编程问题,而是一个关于随机数本质的自我回答问题。@MarcusMüller,如果他说的是一个真正的RNG,那么你是对的。如果他指的是PRNG,那么它与计算机相关。@Stargazer712与计算机相关!=与编程相关。而且,即使如此,“一个PRNG”也没有给我任何关于随机数行为的信息。@MarcusMüller,这里没有论据。这是一个很好的评论。也许你还可以添加PRNG和CryptoPRNG之间的分离(+可能是外部熵源和可能的混合物)。我不确定这个问题的由来,但如果他想预测一些东西,如在线赌场,CPRNG与外部熵源一起,是一个非常重要的概念。此外:了解mersenne捻线器的内部状态(作为非加密PRNG的一个示例)的问题并不像人们想象的那么困难(需要的比特很少)。但我现在找不到推荐人。