线性同余生成器的二维图

Two-dimensional plots for linear congruential generators

par(mfrow=c(1,2))
##General code for an lcg
lcg <- function(a, c, p, run.length, seed){
    x <- rep(0, run.length)
    x[1] <- seed
    for(i in 1:(run.length -1)){
        x[i+1] <- (a*x[i] +c) %% p
    }
    U <- x/p ##scale x to U(0,1)
    return(list(x=x, U=U))
}
z <- lcg(3,0,31,30,2)
z
x1 <- z$U[1:29]
x2 <- z$U[2:30]
plot(x1,x2, main="LCG[3,31]", xlab="U[i]",
   ylab="U[i-1]",col='blue', pch=1)

我想要一个带有负斜率红线的重叠图,如图所示。我如何修改此代码以添加具有负斜率的红线?

我通过反复试验找出了所需的截距和斜率:没有足够仔细地考虑问题以从第一原理推导出它们......我认为它们与你的例子中的线条,但大概你可以更努力地思考并计算截距的斜率和顺序应该是什么......?

这个有效:

avec <- seq(0,1.2,by=0.1)
for (a in avec) {
   abline(a, b=-0.1, col=2)
}