R中的Coin Toss游戏

Coo*_*rab 1 statistics r probability

所以试图模拟一个投币游戏,如果你有头,你可以加倍你的钱,如果你有故事.如果你从x钱开始,想要看看你在投掷之后得到了什么

但是,我不知道如何以一种干净的方式解决这个问题,而不仅仅是做一个forloop到n.

有没有一些干净的方法来做到这一点?

Pau*_*tra 7

您可以使用sample创建times 0.5和列表times 2.

sample_products = sample(c(0.5, 2), 100, replace = TRUE)
> sample_products
  [1] 0.5 2.0 0.5 2.0 2.0 0.5 2.0 0.5 2.0 2.0 0.5 0.5 0.5 0.5 2.0 2.0 0.5 0.5
 [19] 2.0 2.0 0.5 0.5 0.5 2.0 2.0 2.0 2.0 0.5 0.5 2.0 2.0 2.0 2.0 2.0 2.0 0.5
 [37] 2.0 2.0 2.0 0.5 2.0 2.0 0.5 0.5 0.5 2.0 0.5 2.0 2.0 0.5 2.0 2.0 2.0 2.0
 [55] 0.5 2.0 0.5 2.0 0.5 0.5 0.5 2.0 2.0 2.0 2.0 0.5 2.0 0.5 0.5 2.0 0.5 0.5
 [73] 0.5 2.0 0.5 0.5 0.5 2.0 2.0 0.5 2.0 0.5 0.5 0.5 2.0 2.0 2.0 2.0 0.5 0.5
 [91] 2.0 0.5 0.5 0.5 0.5 0.5 0.5 0.5 2.0 0.5
Run Code Online (Sandbox Code Playgroud)

并获得这些产品的累积效果:

cumulative_prod = prod(sample_products)
Run Code Online (Sandbox Code Playgroud)

并包括起始资金:

 start_money = 1000
 new_money = cumulative_prod * start_money
Run Code Online (Sandbox Code Playgroud)

请注意,对于较大的采样大小,cumulative_prod将收敛1于一个公平的硬币(即sample).