2010-05-06 99 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。您達到最大賭注數量。 (你需要這個最大值,這樣你纔不會永遠模擬。)

該函數應該返回玩家在所有投注後的現金數量。

大量運行此功能,並將最終現金與起始現金進行比較。最終現金/開始現金的平均值是衡量您的預期。

嘗試使用不同輸入的模擬。 (例如,有很多賭博遊戲,即使理論上長期可以賺取無限的金錢,隨機變化意味着你在到達之前就已經破產了。)