2016-07-18 9 views
0

whileループはzの値をzが0または11になるまで表示します。その値は公正なコインの裏返しで加算または減算されます。ループ実行回数を印刷する

この機能を使用すると、コインが反転された回数も印刷されますか?

z <- 5 

while(z >= 1 && z <= 10) { 
    print(z) 
    coin <- rbinom(1, 1, 0.5) 

    if(coin == 1) { 
     z <- z +1 
    } else { 
    z <- z -1 
    } 

} 

答えて

0

あなたはコインが別の変数として反転した回数を格納することができ、以下のコードでflipsと呼ばれます。 whileループが実行されるたびに、ちょうどインクリメントflips。その後、関数の最後にflipsを返します。

coin_flip <- function(z) { 

    flips <- 0 

    while(z >= 1 && z <= 10) { 
    print(z) 
    coin <- rbinom(1, 1, 0.5) 

    if(coin == 1) { 
     z <- z +1 
    } else { 
     z <- z -1 
    } 

    flips <- flips + 1 

    } 

    paste("The coin flipped", flips, "times.") 

} 

set.seed(1234) 
coin_flip(5) 
# [1] 5 
# [1] 4 
# [1] 5 
# [1] 6 
# [1] 7 
# [1] 8 
# [1] 9 
# [1] 8 
# [1] 7 
# [1] 8 
# [1] 9 
# [1] 10 
# [1] "The coin flipped 12 times."