试图找出R中的赌场循环

时间:2016-07-07 11:34:02

标签: r

我的问题是创建一个代码,让我能够找出赢得赌场的机会。

这是模拟的情况:有一个名叫" Kim"谁以1的资本前往赌场,Kim一直玩到0资本,然后回家或者她赢了5,然后决定回家。我遇到的问题是我只是这样做,所以她每次下注1次并获胜1.我想尝试一下,如果Kim获得资金2,她将为2赢得4或者回家这让我遇到了第二个问题。当Kim达到3或4的资本时,她只会下注2或1,这取决于她所在的资金5,其数量为" Win"。我想模拟1000次刺激,看看Kim赢了多少次,赌场赢了多少次。

到目前为止,我的代码看起来像这样:牛=(获胜的机会)

gamble <- function(capital, upper=5, lower=0, cow=0.5){
    while(capital < upper & capital>lower){
        if(runif(1)>cow){
       capital <- capital +1
         } else capital <- capital -1
    }
    capital
}


set.seed(1)
simulations <- 1000 
results <- c(1:simulations)
for(i in seq_along(results)){
  results[i] <- gamble(1)
}

 table(results)

1 个答案:

答案 0 :(得分:1)

这样的事情会起作用吗?

gamble <- function(capital, upper=5, lower=0, cow=0.5){
  while(capital < upper & capital>lower){
    betsize = ifelse(capital %in% c(2,3),2,1)
    if(runif(1)>cow){
      capital <- capital + betsize
    } else capital <- capital - betsize
  }
  return(capital)
}

或者正如尼古拉在评论中建议的那样使用资本价值:

gamble <- function(capital, upper=5, lower=0, cow=0.5){
      while(capital < upper & capital>lower){
        betsize<-min(capital,upper-capital)
        if(runif(1)>cow){
          capital <- capital + betsize
        } else capital <- capital - betsize
      }
      return(capital)
    }

根据我的理解,如果大写是1,她只能下注1,如果是2或3,她将下注2,如果是4,她将下注1。