2014-03-07 3 views
0

실험 : 'X는 5 번의 시도와 p = 0.5의 이항입니다. 여기서 X는 머리의 수입니다. Ysample은 X 시도의 이항이고 p = 0.5입니다. 여기서 Ysample은 머리의 수입니다. ' T는 Ysample> = 3의 값이 될 때까지 실험이 반복되는 횟수입니다.for 루프를 r 루프의 while 루프에 중첩 시키십시오.

while (Ysample[i]<3){ 
length(X)=n 
    length(Y)=n 
    X=c(1:n) 
    Y=c(1:n) 
    i=1 
    X[i]=sum(rbinom(5,1,0.5)) 
    Ysample[i]=sum(rbinom(X[i],1,0.5)) 
    i=i+1 
    } 
    T=n 

가 작동하지 않는 이유는 확실치 왜 내가 그것을 실행 얼마나 많은 시간 나는 항상 상관없이 얻을 T = 10000 : 이 코드인가?

+0

게시물 하단에 적절한 언어 탭을 추가하십시오. C, C++, PHP, ... 사람들이 당신이 쓰는 언어를보기 위해 이것을 열어야하는 시간 낭비입니다. 고마워요. –

+1

포스터에 언어 탭이 추가되었습니다. 아르 자형. 비록 자본화 되었어야했지만 ... –

답변

1

원하는대로 할 수 있습니까?

T <- 0 
Ysample <- 0 

while(Ysample < 3) 
{ 
    X <- sum(rbinom(5, 1, 0.5)) 
    Ysample <- sum(rbinom(X, 1, 0.5)) 
    T <- T + 1 
} 

cat("T = ", T, "\n\n") 
1

무엇을 설정하고 있는지 확인하십시오. T는 단순히 루프의 끝에서 n으로 설정됩니다. 그것은 계산되거나 아무것도 아닙니다.

또한 고차 함수를 사용해보십시오. R은 루프를 처리 할 수 ​​있지만, 루프가 없으면 훨씬 더 효율적입니다. 상위 순서 함수와 작업의 기본 "벡터화"동작을 사용하는 것이 더 관용적입니다.

관련 문제