2010-05-06 85 views
0

我正在研究某些“系统”投注是否确实按要求工作,即他们是否有积极的期望。一个这样的系统是基于损失回扣。你基本上有一个大锅,比如说100万美元。你每场比赛的资金是5万美元。陷入循环 - R

它的工作方式如下: 1)以$ 50k开始,始终赌注银行家 2)如果你赢了,把钱加到主彩池中。然后再玩5万美元。 3)如果你输了(现在你在3万美元),你可以玩: (a)命中0,你可以得到10%的回扣。再以5万美元+ 5千美元= 55千美元再玩。 (b)如果您赢得的资金超过了最初的资金,请将资金添加到主彩池中。然后再玩5万美元。 4)继续,直到你把主锅加倍。

我只是找不到一个简单的方法来编写出R中可能的情况,因为你最终可能会走上一条不可能的路。例如,你从50k开始,输了20,赢了19,现在你在49,现在你输了20,输了20,现在你是9,你输了9,回来5k或者你赢了,这个循环会继续下去,直到你得到50k以上或者0以上并获得50k的回扣,并以$ 50k + 5k再次开始。

下面是我开始的一些代码,但我还没有想出一个处理卡住的情况和跟踪所玩游戏数量的好方法。再次感谢你的帮助。很明显,我明白你可能很忙,没有时间。

p.loss <- .4462466 
p.win <- .4585974 
p.tie <- 1 - (p.win+p.loss) 

prob <- c(p.win,p.tie,p.loss) 


bet<-20 
x <- c(19,0,-20) 

r <- 10 # rebate = 20% 

br.i <- 50 
br<-200 


#for(i in 1:100){ 
# cbr.i<-0 
y <- sample(x,1,replace=T,prob) 

cbr.i<-y+br.i 

if(cbr.i > br.i){ 

    br<-br+(cbr.i-br.i); 
    cbr.i<-br.i; 

    }else{  

     y <- sample(x,2,replace=T,prob); 
     if(sum(y)< cbr.i){ cbr.i<-br.i+(1/r)*br.i; br<-br-br.i} 
     cbr.i<-y+ 
     }else{ 

     cbr.i<- sum(y) + cbr.i; 

     }if(cbr.i <= bet){ 

     y <- sample(x,1,replace=T,prob) 

     if(abs(y)>cbr.i){ cbr.i<-br.i+(1/r)*br.i } } 
+0

看起来像这可能是hw问题某种。 – Dan 2010-05-06 23:28:43

+0

在确定一个积极的期望是否来自游戏系统时,这是一个不平凡的问题。适当的取样在这里并不容易。 – user334898 2010-05-07 04:22:53

回答

1

你说过规则的方式并不能让我完全清楚游戏,但下面是关于如何解决问题的一般建议。

首先,坐下来用笔和纸,看看你是否可以在分析解决方案方面取得一些进展。如果游戏足够复杂,这可能是不可能的,但您可以更深入地了解游戏的运作方式。

下一步,如果失败,是运行一个模拟。这意味着写一个函数接受玩家现金的开始水平,并且存入现金(可选地,这可能是无限的)以及最大投注数。然后模拟玩游戏,根据您的投注系统进行投注直到

i。玩家破产

ii。房子破产

iii。您达到最大赌注数量。 (你需要这个最大值,这样你才不会永远模拟。)

该函数应该返回玩家在所有投注后的现金数量。

大量运行此功能,并将最终现金与起始现金进行比较。最终现金/开始现金的平均值是衡量您的预期。

尝试使用不同输入的模拟。 (例如,有很多赌博游戏,即使理论上长期可以赚取无限的金钱,随机变化意味着你在到达之前就已经破产了。)