我试图用一个线性同余生成器在Matlab中解决以下问题。函数的代码行如下所示。m基本上是您可以预期的值范围的最大值,因此取决于问题。首先由时钟确定初始种子x,然后将每个随机数反馈到函数中产生一个新的随机数。这里给出了选择lcg值的规则,generator。我需要的是在指定时期内a和c的良好值。
我的lcg代码
random_number = mod((a*x + c),m);我知道这看起来可能很简单,但是用小范围实现这一点往往会产生一个小周期的模式,即连续重复4位数。
此外,也可能使用不同的m值并筛选出任何超出我所需范围的值,但老实说,我不认为这是必要的。非常感谢
发布于 2013-03-29 21:01:27
我会以不同的方式来处理这个问题:
rnd()*52 / m + 1,并将其作为输出
*记住,“当你假设,你把你和我搞得屁滚尿流”;https://stackoverflow.com/questions/15271440
复制相似问题