我正在寻找一种方法来生成一个具有某种奇怪特性的伪随机流-我想要附近的一堆数字。
棘手的是,无论范围有多大,我只能保持有限的状态。有一些算法给出一系列状态最小的结果(线性同余?)
聚集意味着下一个数字接近而不是远的概率更高。
理想顺序示例(mod 10):1 3 9 8 2 7 5 6 4
我想,如果河流较大,这一点会更明显,但很难用手进入。
更新:
我不明白为什么这是不可能的,但是的,我正在寻找,正如韦尔博格总结的那样:
非重复
不跟踪
“成团”
最佳答案
将几个周期小于所需值的lfsr级联起来,将它们组合起来得到一个比变化最快的寄存器控制最低有效值的结果所以如果L1有周期3,L2有周期15,L3有更大的周期,N=L1(N)+3*L2(N/3)+45*L3(N/45)很明显,这将生成3个聚集值,然后跳转并通用另外3个聚集值。使用除乘法以外的其他事物(如混合较高周期寄存器的一些位)或不同的周期,使丛扩展比第一寄存器的周期宽。它不会是特别平稳的随机,但它将是笨拙和不重复的。