0

次のコードでは、whileループは0 または 11 に達するzまでの値をz 出力します。その値は公正なコインの投げによって加算または減算されます。

この関数でコインを投げた回数を出力するにはどうすればよいでしょうか?

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
  }

}
4

1 に答える 1

0

flips以下のコードで呼び出される別の変数として、コインが裏返された回数を格納できます。次に、while ループが実行されるたびに、単にインクリメントしますflipsflipsその後、関数の最後に戻ります。

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."
于 2016-07-18T13:08:42.677 に答える