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... <div><br></div><div>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).</div>
<div><br></div><div><br></div><div><br></div><div>[]'s<br><br><div class="gmail_quote">2011/8/24 Mauro Sznelwar <span dir="ltr"><<a href="mailto:sznelwar@uol.com.br">sznelwar@uol.com.br</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<u></u>
<div>
<div><font face="Arial" size="2"><font color="#0000ff" size="4">Como faz para
executar?</font><br></font></div><div><div></div><div class="h5"><font face="Arial" size="2">>O código dentro do
while não está sendo executado:<br>> <br>>> exp(-2)<br>> [1]
0.1353353<br>>> sum(runif(100))<br>> [1] 53.06867<br>> <br>> logo
sum(u)<c dificilmente vai dar TRUE e n vai continuar sendo 1, o<br>> que
faz com que x = n - 1 = 0.<br>> <br>> 2011/8/24 Mauro Sznelwar
<</font><a href="mailto:sznelwar@uol.com.br" target="_blank"><font face="Arial" size="2">sznelwar@uol.com.br</font></a><font face="Arial" size="2">>:<br>>>
Por que o X dá sempre zero, mesmo que eu substitua o lambda por
qualquer<br>>> valor? Onde estou errando?p=1<br>>> n=0<br>>>
lambda=2<br>>> c=exp(-lambda)<br>>> u=runif(100)<br>>>
p=p*u<br>>> n=1<br>>> #while (p<c){
u=runif(100);n=n+1}<br>>> #p<br>>> while (sum(u)<c){
u=runif(100);n=n+1}<br>>> u<br>>> x=n-1<br>>>
x<br>>><br>>> É só trocar o nome das variaveis (na verdade nem
precisava trocar, era só<br>>> adicionar x<-n-1 no
final)...<br>>> ## Gera 'batata' até que a soma seja 1.5<br>>>
batata <- runif(2)<br>>> batata<br>>> n<- 1<br>>> while
(sum(batata) < 1.5) { batata <- runif(2) ; n <- n+1 }<br>>>
batata<br>>> x<-n-1<br>>> 2011/8/23 Mauro Sznelwar <</font><a href="mailto:sznelwar@uol.com.br" target="_blank"><font face="Arial" size="2">sznelwar@uol.com.br</font></a><font face="Arial" size="2">><br>
>>><br>>>> Muito obrigado pela dica. Mas como
fica o faça
X=N-1<br>>>><br>>>><br>>>><br>>>><br>>>>
for não é para isso, da uma olhada no while<br>>>> Exemplo
basico:<br>>>> ## Gera X até que a soma deles seja 1.5<br>>>>
x <- runif(2)<br>>>> x<br>>>> n<- 1<br>>>>
while (sum(x) < 1.5) { x <- runif(2) ; n <- n+1 }<br>>>>
x<br>>>> n # numero de
tentativas<br>>>><br>>>><br>>>> 2011/8/23 Crysttian
Arantes <</font><a href="mailto:crysttian@gmail.com" target="_blank"><font face="Arial" size="2">crysttian@gmail.com</font></a><font face="Arial" size="2">><br>>>>><br>>>>>
Olá,<br>>>>><br>>>>> O problema está na funcao
runif(0).<br>>>>><br>>>>> O zero indica que o numero de
valores uniformes que ele tem que gerar é<br>>>>> zero, coloca
1.<br>>>>><br>>>>> runif(1): gera 1
valor<br>>>>> runif(2): gera 2
valores<br>>>>><br>>>>>
Entendeu:<br>>>>><br>>>>>
Até<br>>>>><br>>>>><br>>>>><br>>>>>
Crysttian Arantes Paixão<br>>>>> Universidade Federal de Lavras -
UFLA<br>>>>> Cel: <a href="tel:35%208876-9187" value="+553588769187" target="_blank">35 8876-9187</a> (Oi)<br>>>>> <a href="tel:35%209189-7272" value="+553591897272" target="_blank">35 9189-7272</a>
(Tim)<br>>>>> Linux User: 456734 -
Debian<br>>>>><br>>>>> “Se fiz descobertas valiosas, foi
mais por ter paciência do que qualquer<br>>>>> outro talento.”
[Isaac Newton]<br>>>>><br>>>>> "Otimismo é esperar pelo
melhor. Confiança é saber lidar com o pior."<br>>>>> [Roberto
Simonsen]<br>>>>><br>>>>> "Mesmo as noites totalmente
sem estrelas podem anunciar a aurora de uma<br>>>>> grande
realização." [Martin Luther
King]<br>>>>><br>>>>><br>>>>><br>>>>><br>>>>><br>>>>><br>>>>>
Em 23 de agosto de 2011 22:59, Mauro Sznelwar <</font><a href="mailto:sznelwar@uol.com.br" target="_blank"><font face="Arial" size="2">sznelwar@uol.com.br</font></a><font face="Arial" size="2">><br>>>>>
escreveu:<br>>>>>><br>>>>>> Tenho este
algoritmo<br>>>>>><br>>>>>> p=1, N=0,
c=e^-lambda<br>>>>>><br>>>>>>
Repita<br>>>>>><br>>>>>>
N=N+1<br>>>>>><br>>>>>> gere
Ui<br>>>>>><br>>>>>> atualize
p<c.e^-lambda<br>>>>>><br>>>>>> Faça
X=N-1<br>>>>>><br>>>>>><br>>>>>>
Estou fazendo esta rotina abaixo, mas o resultado não está
consistente!<br>>>>>> Qual o melhor
jeito?<br>>>>>> p=1<br>>>>>>
n=0<br>>>>>> lambda=2<br>>>>>>
c=exp(-lambda)<br>>>>>> for(n in 1:100){<br>>>>>>
u=runif(n)<br>>>>>> p=p*u<br>>>>>>
p<c<br>>>>>> }<br>>>>>>
x=n-1<br>>>>>><br>>>>>>
_______________________________________________<br>>>>>> R-br
mailing list<br>>>>>> </font><a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank"><font face="Arial" size="2">R-br@listas.c3sl.ufpr.br</font></a><br><font face="Arial" size="2">>>>>> </font><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank"><font face="Arial" size="2">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</font></a><br>
<font face="Arial" size="2">>>>>> Leia o guia de postagem (</font><a href="http://www.leg.ufpr.br/r-br-guia" target="_blank"><font face="Arial" size="2">http://www.leg.ufpr.br/r-br-guia</font></a><font face="Arial" size="2">) e
forneça<br>>>>>> código mínimo
reproduzível.<br>>>>><br>>>>><br>>>>>
_______________________________________________<br>>>>> R-br mailing
list<br>>>>> </font><a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank"><font face="Arial" size="2">R-br@listas.c3sl.ufpr.br</font></a><br><font face="Arial" size="2">>>>> </font><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank"><font face="Arial" size="2">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</font></a><br>
<font face="Arial" size="2">>>>> Leia o guia de postagem (</font><a href="http://www.leg.ufpr.br/r-br-guia" target="_blank"><font face="Arial" size="2">http://www.leg.ufpr.br/r-br-guia</font></a><font face="Arial" size="2">) e
forneça<br>>>>> código mínimo
reproduzível.<br>>>><br>>>>
________________________________<br>>>><br>>>>
_______________________________________________<br>>>> R-br mailing
list<br>>>> </font><a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank"><font face="Arial" size="2">R-br@listas.c3sl.ufpr.br</font></a><br><font face="Arial" size="2">>>> </font><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank"><font face="Arial" size="2">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</font></a><br>
<font face="Arial" size="2">>>> Leia o guia de postagem (</font><a href="http://www.leg.ufpr.br/r-br-guia" target="_blank"><font face="Arial" size="2">http://www.leg.ufpr.br/r-br-guia</font></a><font face="Arial" size="2">) e
forneça<br>>>> código mínimo
reproduzível.<br>>>><br>>>>
_______________________________________________<br>>>> R-br mailing
list<br>>>> </font><a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank"><font face="Arial" size="2">R-br@listas.c3sl.ufpr.br</font></a><br><font face="Arial" size="2">>>> </font><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank"><font face="Arial" size="2">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</font></a><br>
<font face="Arial" size="2">>>> Leia o guia de postagem (</font><a href="http://www.leg.ufpr.br/r-br-guia" target="_blank"><font face="Arial" size="2">http://www.leg.ufpr.br/r-br-guia</font></a><font face="Arial" size="2">) e
forneça<br>>>> código mínimo reproduzível.<br>>><br>>>
________________________________<br>>><br>>>
_______________________________________________<br>>> R-br mailing
list<br>>> </font><a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank"><font face="Arial" size="2">R-br@listas.c3sl.ufpr.br</font></a><br><font face="Arial" size="2">>> </font><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank"><font face="Arial" size="2">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</font></a><br>
<font face="Arial" size="2">>> Leia o guia de postagem (</font><a href="http://www.leg.ufpr.br/r-br-guia" target="_blank"><font face="Arial" size="2">http://www.leg.ufpr.br/r-br-guia</font></a><font face="Arial" size="2">) e
forneça código<br>>> mínimo reproduzível.<br>>><br>>>
_______________________________________________<br>>> R-br mailing
list<br>>> </font><a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank"><font face="Arial" size="2">R-br@listas.c3sl.ufpr.br</font></a><br><font face="Arial" size="2">>> </font><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank"><font face="Arial" size="2">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</font></a><br>
<font face="Arial" size="2">>> Leia o guia de postagem (</font><a href="http://www.leg.ufpr.br/r-br-guia" target="_blank"><font face="Arial" size="2">http://www.leg.ufpr.br/r-br-guia</font></a><font face="Arial" size="2">) e
forneça código<br>>> mínimo reproduzível.<br>>><br>>
_______________________________________________<br>> R-br mailing
list<br>> </font><a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank"><font face="Arial" size="2">R-br@listas.c3sl.ufpr.br</font></a><br><font face="Arial" size="2">>
</font><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank"><font face="Arial" size="2">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</font></a><br><font face="Arial" size="2">> Leia o guia de postagem (</font><a href="http://www.leg.ufpr.br/r-br-guia" target="_blank"><font face="Arial" size="2">http://www.leg.ufpr.br/r-br-guia</font></a><font face="Arial" size="2">) e
forneça código mínimo reproduzível.</font></div></div></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div>