Tiago,

esse e' um problema legal... se vc derivar as distribuicoes a mao,
certamente vc consegue ganhos bem maiores...

FYI: usando propriedades de estatistica, vc chega na mudanca que eu
fiz na geracao das suas variaveis aleatorias.

Adicionalmente, eu nao tive paciencia de esperar o seu codigo original
acabar de rodar... eu o cancelei depois de um pouco mais de 1h10m.

Abaixo uma sugestao para voce:


library(foreach)
library(doMC)
registerDoMC()
programa2 <- function(f,n,m) {
    ## f: número máximo de filhos
    ## n: número de gerações
    ## m: número de iterações
    S <- foreach(p=seq(0,1,by=0.01), .combine=rbind) %dopar% {
        pp <- 0
        for (g in 1:m) {
            y <- 1
            for (k in 1:n)
                y <- rbinom(1, y*f, p)
            if (y > 0) pp <- pp + 1
        }
        c(p, pp/m)
    }
    return(S)
}
system.time(prog2 <- programa2(2,200,1000))
plot(prog2, xlab = "p", ylab = "Probabilidade de Percolação")

para matar sua curiosidade, no meu computador, eu obtive:

> system.time(prog2 <- programa2(2,200,1000))
   user  system elapsed
257.072   2.562  20.835
_______________________________________________
R-br mailing list
[email protected]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código 
mínimo reproduzível.

Responder a