陷入循环- R

r9f1avp5  于 2023-01-18  发布在  其他
关注(0)|答案(1)|浏览(180)

我正在研究某些博彩“系统”是否真的如所宣称的那样有效,即他们有积极的预期。其中一个系统是基于亏损回扣的。你基本上有一个大的主池,比如说100万美元。你每场比赛的资金是5万美元。
其工作方式如下:
1.从5万美元开始,总是赌庄家
1.如果你赢了,把钱加到主彩池中。然后用5万美元再玩一次。
1.如果您输了(现在您的赌注是$30,000),继续玩直到您:(a)点击0,您将获得10%的折扣。以$50k+5k=$55k重新开始游戏。(b)如果您赢的钱比初始资金多,则将钱添加到主底池中。然后以$50k重新开始游戏。
1.继续直到您的主底池翻倍。
我只是找不到一种简单的方法来编程出R中可能的情况,因为你最终会走上一条不太可能的道路。
例如,你从5万开始,输了20,赢了19,现在你是49,现在你输了20,输了20,现在你是9,你要么输了9,拿回5万,要么赢了,这个循环一直持续,直到你最终超过5万,或者达到0,拿到5万的回扣,然后再从5万+5万美元开始。
这是我开始编写的一些代码,但是我还没有找到一个好的方法来处理你陷入困境的情况,并记录所玩游戏的数量。再次感谢你的帮助。显然,我理解你可能很忙碌,没有时间。

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  }  }
kwvwclae

kwvwclae1#

你对规则的表述方式并没有让我完全明白这个游戏,但这里有一些关于你如何解决问题的一般性建议。
首先,拿着纸笔坐下来,看看你是否能在解析解上取得一些进展。如果游戏足够复杂,这可能是不可能的,但你可能会对游戏如何运作有更多的了解。
如果失败,下一步就是运行模拟。这意味着编写一个函数,接受玩家现金和赌场现金(可选地,这可以是无限的)的起始水平,以及最大下注数量。然后,它模拟玩游戏,根据您的下注系统下注,直到
i.玩家破产
(二)房屋破产
iii.你达到了最大下注次数(你需要这个最大值,这样你就不会永远被困在模拟中)。
该函数应该返回玩家在所有赌注都下完后所拥有的现金金额。
多次运行这个函数,并比较最终现金和初始现金,最终现金/初始现金的平均值是衡量你期望值的一个指标。
尝试使用不同的输入进行模拟(例如,在许多赌博游戏中,即使你从理论上可以长期赚无限多的钱,随机变化也意味着你在达到目标之前就破产了)。

相关问题