|
- # linear congruential generator (lcg)
- lcg_prng <- function(n, y1, m, a, b) {
- if (n == 1) return(y1)
- y <- (a*y1 + b) %% m
- c(y1, lcg_prng(n-1, y, m, a, b))
- }
- par(mfrow=c(1,2))
- m <- 2^11
- x <- lcg_prng(500, y1=1, m=m, a=1017, b=1)
- plot(x[1:499]/m, x[2:500]/m, pch=".", cex=4, xlab="u1, ..., u499", ylab="u2, ..., u500", main="lcg_prng()")
- # Vergleich mit R-Funktion sample.int(), siehe ?sample
- x <- sample.int(m, 500)
- plot(x[1:499]/m, x[2:500]/m, pch=".", cex=4, xlab="u1, ..., u499", ylab="u2, ..., u500", main="sample.int()")
|