Кондиционирование некоторое время l oop (2 условия) - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь включить два условия в while l oop:

  1. первое условие - число симуляций должно быть не менее 50
  2. Второе условие - стандартное значение (оценка) должно быть меньше 0,01.

Может ли кто-нибудь мне помочь?

set.seed(1)
MinSimNumber=50
Ncount=0
n=0
N=rep(0,10000)
sqrt(var(N))
while(Ncount<MinSimNumber){
  u=runif(40,0,1) #Generating a big enough vector
if(u[n+1]>u[n+2]){  #if the preceding uniform value is bigger than execute the loop
  while(u[n+1]>u[n+2]){ #while the  preceding uniform value is bigger than the following than do n=n+1
  n=n+1

  }
  n=n+2 #when the loop ends we do n=n+2 to add the first two not counted values 
}

if((u[n+1]<=u[n+2])&(n==0)) {
  n=2
}
  Ncount=Ncount+1
  N[Ncount]=n
  n=0
}

Вот мой полный код, который симуляция приближает к exp (1)

1 Ответ

0 голосов
/ 25 марта 2020

Вы ищете что-то вроде этого:

while(Ncount<100 & sqrt(var(N))<0.01)        
{        
  Ncount=Ncount+1        
  # (all my other statements...)        
}

или это, если вам нужно сделать 100 шагов, даже если стандартное значение выше 0,01

while(sqrt(var(N))<0.01)        
{        
  if(Ncount<100)        
  {        
    Ncount=Ncount+1        
    # (all my other statements...)        
    }        
  Ncount=Ncount+1        
  # (all my other statements...)        
  }      

, конечно, вы можете определите «100» и «0,01» до того, как l oop

для редактирования:

while(Ncount<100)        
{        
    Ncount=Ncount+1        
    # (all my other statements...)        
}        
if(sqrt(var(N))<0.01){TRUE}else{FALSE} 
...