如何解决您能否仅用几个已知参数构造确定性无限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”):
如您所见,红点是反射,虚线代表“圆锥”
由于以下几个原因,这是一个非常不错的过程:
- 它均匀地行走范围
- 它具有明确定义的期望值,即
(b-a)/2
- 它不像
Uni[a,b]
那样混乱,它非常适合模拟现实世界中的漂移,例如传感器误差。
但是,此方法的一个缺点是要重建步行,您需要记录步行的每个点。我希望有一个具有这些属性的过程,但也可以仅使用几个初始参数来重新生成。
这可能吗?
解决方法
只要这些参数中的至少一个具有无限数量的位,就可以使用“很少”参数来实现。对于无限PRNG,您需要它具有无限数量的可能状态。
鉴于您的计算机只有有限的内存,那么您将不得不满足于大量但有限的状态。一旦PRNG循环通过所有可能的状态,由于它是确定性机器,它将开始重复。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。