2016-09-27 53 views
2

這裏我寫了一個代碼,它使用幾何函數rgeom()來檢查第一次嘗試是否成功。然而,我無法說出它花了多少次,什麼時候它必須在第一次嘗試中取得成功。 這就是我分配A & B從k獲得它的值的原因。當k達到時,它應該打印出多少次,但現在只打印出k + 1。帶有2個變量的R中的幾何概率

test <- function(k){ 
p <- 1/3 
trials <- 1 
A <- k 
B <- k 
for(i in 1:1000){ 
    while(B > 0){ 
    if (rgeom(1, p) == 0){ 
    B = B-1 
    trials = trials +1 
    break 
    }else { 
    A = A-1 
    break 
    } 
    } 
} 
print(trials) 
} 

回答

0

試試這個:

p <- 1/3 # parameter of the geometric variable 
n <- 1000 # number of trials 
sum(replicate(n, {rgeom(1,p)})==1) # number of times it was successful on the first try 
+0

你沒幫我解決工作:)最後我解決它這個樣子。 <試驗 - 函數(K){ P < - 2/3 試驗< - 0 A < - K 乙< - K 爲(I在1:100){ 一個< - 複製(1,{ rgeom(1,p)})== 0 b < - replicate(1,{rgeom(1,p)})== 0 if(a == FALSE){試驗-1 A < - 試驗1 I < - I-1 如果(A == 0){ 打印(試驗) 停止( 「A = 0」) } } 如果(b == FALSE){ 乙< - B-1 試驗< - 試驗+1 i < - i-1 如果(B == 0){ 打印(試驗) 停止( 「B = 0」) } } } 打印(A) 打印(B) 打印(試驗) } – FredH

+0

嗯,如何我在評論中格式化代碼? – FredH

+1

註釋中沒有太多格式化功能。如果您認爲自己有更好的答案,只需將其添加到具有完整格式的答案編輯框中即可。 –