我的问题是创建一个代码,让我能够找出赢得赌场的机会。
这是模拟的情况:有一个名叫" 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)
答案 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。