
Quando eu falei pra usar while e nao for nao era pra simplesmente trocar um pelo outro e torcer pra dar certo, tem que mudar a lógica do código... A idéia que tu quer é ir gerando numero aleatórios (1 de cada vez) até que o produto deles seja menor que exp(-lambda), e tu ta gerando logo de cara 100 numeros e vendo se a soma é menor que exp(-lambda). []'s 2011/8/24 Mauro Sznelwar <sznelwar@uol.com.br>
** Como faz para executar?
O código dentro do while não está sendo executado:
exp(-2) [1] 0.1353353 sum(runif(100)) [1] 53.06867
logo sum(u)<c dificilmente vai dar TRUE e n vai continuar sendo 1, o que faz com que x = n - 1 = 0.
2011/8/24 Mauro Sznelwar <sznelwar@uol.com.br>:
Por que o X dá sempre zero, mesmo que eu substitua o lambda por qualquer valor? Onde estou errando?p=1 n=0 lambda=2 c=exp(-lambda) u=runif(100) p=p*u n=1 #while (p<c){ u=runif(100);n=n+1} #p while (sum(u)<c){ u=runif(100);n=n+1} u x=n-1 x
É só trocar o nome das variaveis (na verdade nem precisava trocar, era só adicionar x<-n-1 no final)... ## Gera 'batata' até que a soma seja 1.5 batata <- runif(2) batata n<- 1 while (sum(batata) < 1.5) { batata <- runif(2) ; n <- n+1 } batata x<-n-1 2011/8/23 Mauro Sznelwar <sznelwar@uol.com.br>
Muito obrigado pela dica. Mas como fica o faça X=N-1
for não é para isso, da uma olhada no while Exemplo basico: ## Gera X até que a soma deles seja 1.5 x <- runif(2) x n<- 1 while (sum(x) < 1.5) { x <- runif(2) ; n <- n+1 } x n # numero de tentativas
2011/8/23 Crysttian Arantes <crysttian@gmail.com>
Olá,
O problema está na funcao runif(0).
O zero indica que o numero de valores uniformes que ele tem que gerar
é
zero, coloca 1.
runif(1): gera 1 valor runif(2): gera 2 valores
Entendeu:
Até
Crysttian Arantes Paixão Universidade Federal de Lavras - UFLA Cel: 35 8876-9187 (Oi) 35 9189-7272 (Tim) Linux User: 456734 - Debian
“Se fiz descobertas valiosas, foi mais por ter paciência do que qualquer outro talento.” [Isaac Newton]
"Otimismo é esperar pelo melhor. Confiança é saber lidar com o pior." [Roberto Simonsen]
"Mesmo as noites totalmente sem estrelas podem anunciar a aurora de uma grande realização." [Martin Luther King]
Em 23 de agosto de 2011 22:59, Mauro Sznelwar <sznelwar@uol.com.br> escreveu:
Tenho este algoritmo
p=1, N=0, c=e^-lambda
Repita
N=N+1
gere Ui
atualize p<c.e^-lambda
Faça X=N-1
Estou fazendo esta rotina abaixo, mas o resultado não está
consistente!
Qual o melhor jeito? p=1 n=0 lambda=2 c=exp(-lambda) for(n in 1:100){ u=runif(n) p=p*u p<c } x=n-1
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.
________________________________
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.
________________________________
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.