[R-br] ajuda para um scrip

Gustavo Carvalho gustavo.bio em gmail.com
Quarta Agosto 24 02:02:22 BRT 2011


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 em 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 em 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 em 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 em 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 em 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 em 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 em 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 em 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 em 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 em 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.
>


Mais detalhes sobre a lista de discussão R-br