您能否仅用几个已知参数构造确定性无限RNG?

问题描述

我目前正在使用基于锥面的随机游动,并在边界处反射(表示为R[n]),具有以下属性

  • R[n]始终处于用户定义的范围内(称为边界)[a,b](如果更容易,也可以使用[-a,a]
  • R[0]用户定义
  • |R[n]-R[n-1]|<d代表d <= b - a(这是圆锥体属性
  • 如果生成R[n]不在边界内,则将其反射到最近的边界上,以使边缘处不积累概率质量

您可以在此处看到此过程的可视化(图形中R [0]为“ R”):

R in the graphic is R[0]

如您所见,红点是反射,虚线代表“圆锥”

由于以下几个原因,这是一个非常不错的过程:

  • 它均匀地行走范围
  • 它具有明确定义的期望值,即(b-a)/2
  • 它不像Uni[a,b]那样混乱,它非常适合模拟现实世界中的漂移,例如传感器误差。

但是,此方法一个缺点是要重建步行,您需要记录步行的每个点。我希望有一个具有这些属性的过程,但也可以仅使用几个初始参数来重新生成

这可能吗?

解决方法

只要这些参数中的至少一个具有无限数量的位,就可以使用“很少”参数来实现。对于无限PRNG,您需要它具有无限数量的可能状态。

鉴于您的计算机只有有限的内存,那么您将不得不满足于大量但有限的状态。一旦PRNG循环通过所有可能的状态,由于它是确定性机器,它将开始重复。