2016-07-18 3 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."