Membuat User-Defined Function untuk LCG

lcg <- function(n) {
  rng <- vector(length = n)
  m <- 2 ** 32
  a <- 11047321091
  c <- 12345
  x <- as.numeric(Sys.time()) * 1000
  for (i in 1:n) {
    x <- (a * x + c) %% m
    rng[i] <- x / m
  }
  return(rng)
}


Membangkitkan Bilangan Acak

Bilangan acak dibangkitkan menggunakan fungsi yang dibuat sebelumnya, bilangan yang dibangkitkan berjumlah 10.

x1 <- lcg(10)
y1 <- lcg(10)


Plot Bilangan Acak

plot (x1,y1)


Membuat Plot 3D Untuk nilai beberapa nilai n

library(plot3D)
library(animation)
n <- c(3, 10, 20, 100, 500, 1000, 2000, 5000, 10000, 20000)
saveGIF({
  for (i in 1:length(n)) {
    x <- lcg(n[i])
    y <- lcg(n[i])
    z <- lcg(n[i])
    
    scatter3D(x, y, z, colvar = NULL, pch=20, cex = 0.5,
              theta=20, main = paste('n = ', n[i]))
  }
}, movie.name = 'lcg.gif')
## Output at: lcg.gif
## [1] TRUE