Cosa prodigiosa, sin palabras (I)
Hoy voy a hacer mención a una cosa prodigiosa. Pero sin palabras. Voy a regalar a mis lectores tres pedazos de código que son este
jugar <- function( n, make.step ){ tmp <- rep( 0L, n) for( i in 2:n ) tmp[i] <- make.step( tmp[i-1] ) tmp } juego.s <- function( x, prob.perder = 0.51 ){ x + ifelse( runif(1) < prob.perder, -1L, 1L ) } res.juego.s <- replicate( 1000, jugar( 1000, juego.s )[1000] ) hist( res.juego.s ) fivenum( res.juego.s )
este
y este otro
Es una cosa tan maravillosa que no les voy a robar la oportunidad de averiguar por sí mismos en qué consiste. La semana que viene, en la segunda entrega, comentaré el código anterior y explicaré a qué se refiere y, si nadie lo ha dado a conocer antes, dónde reside lo miraculoso del asunto.
Y en la tercera, la última, ofreceré referencias y plantearé un problema que no sé si alguien podrá resolver (y si lo resuelve en la dirección que sospecho, habrá encontrado un sorprendente bug donde menos cabría esperarlo).


Hola.
Una pregunta un poco tonta. ¿ Por qué el uso de la L en 1L ,por ejemplo?
Hola.
Tengo la misma pregunta que Luis. No entendio el uso de ‘L’.
-
Si no me equivoco, jugar(x,make.step) describe un camino como: x<-x+make.step
Con juego.s, es el usual camino aleatorio: x<-x+1 con probabilitad 1/2 y x<-x-1 con probabilidad 1/2
Con juego.c, el paso depiende de x:
si x=3k, x<-x+1
si x=3k+1, x<-x-1 con probabilidad 0.905, si no, x<-x+1
si x=3k+2, x<-x-1 con probabilidad 0.255, si no, x<-x+1
Con juego.fin, el paso viende de juego.c o juego.s con probabilidad 1/2
Los resultados son el final position despues 1000 pasos.
Pero no se que es tan maravillosa. Las tres distribuciones son muy differentes:
p<-ggplot(
data.frame(
endPoint=c(res.juego.c,res.juego.s,res.juego.fin),
juego=rep(c("juego.c","juego.s","juego.fin"),1,each=1000)))
p<-p+geom_density(aes(x=endPoint,fill=juego),alpha=0.3)
print(p)
¡Tengo muchas ganas de conocerlo!
@ChrisL @Jose Luis Voy a hacer una entrada sobre lo de la L. Pero pensaba que era conocido. Mirad, sin ir más lejos, el código de la función “sample” y, dentro de él, el primer “if”.