2014-03-07 244 views
0

實驗:'X是五項試驗的二項式,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

檢查你正在設置n。 T在循環結束時簡單地設置爲n。這不是計算或任何東西。

另外,您可能要考慮使用更高階的函數;雖然R可以處理循環,但沒有它們會更好,並且更習慣於使用高階函數和操作的默認「向量化」行爲。