Попасть в петли - R - PullRequest
0 голосов
/ 07 мая 2010

Я смотрю на то, действительно ли определенные «системы» для ставок работают так, как заявлено, а именно на то, что они имеют положительное ожидание. Одна такая система основана на скидке на потери. У вас в основном большой мастер-банк, скажем, 1 миллион долларов. Ваш банкролл для каждой игры составляет $ 50 тыс.

Как это работает, выглядит следующим образом: 1) Начните с $ 50k, всегда ставьте на банкира 2) Если вы выиграли, добавьте деньги в мастер-банк. Тогда играйте снова с $ 50k. 3) Если вы проиграли (сейчас у вас $ 30k), играйте до тех пор, пока (а) нажмите 0, вы получите скидку 10%. Начните играть снова с $ 50k + 5k = $ 55k. (б) Если вы выиграли больше, чем первоначальный банкролл, добавьте деньги в мастер-банк. Тогда играйте снова с $ 50k. 4) Продолжайте, пока не удвоите мастер-банк.

Я просто не могу найти простой способ программирования возможных случаев в R, поскольку в конечном итоге вы можете пойти по невероятному пути.

Например, вы начинаете с 50 000, теряете 20, выигрываете 19, теперь вы находитесь на 49, теперь вы теряете 20, теряете 20, теперь вы на 9, вы либо теряете 9 и возвращаете 5 000, либо вы выигрываете, и это цикл продолжается до тех пор, пока вы не наберете больше 50 000 или не нажмете 0, не получите скидку в 50 000 и не начнете снова с $ 50 000 + 5 000.

Вот некоторый код, который я начал, но я не нашел хорошего способа справиться со случаями, когда вы застряли, и отследить количество сыгранных игр. В очередной раз благодарим за помощь. Очевидно, я понимаю, что вы можете быть заняты и не иметь времени.

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

1 Ответ

1 голос
/ 07 мая 2010

То, как вы сформулировали правила, не дает мне полной ясности в игре, но вот несколько общих советов о том, как вы можете решить свою проблему.

Прежде всего, сядьте за ручку и бумагу и посмотрите, сможете ли вы продвинуться к аналитическому решению. Если игра достаточно сложна, это может оказаться невозможным, но вы можете получить более подробное представление о том, как работает игра.

Следующим шагом, если это не удастся, является запуск симуляции. Это означает написание функции, которая принимает начальный уровень денежных средств игрока и наличных денег дома (опционально это может быть бесконечным), а также максимальное количество ставок для размещения. Затем он имитирует игру, делая ставки в соответствии с вашей системой ставок до

я. Игрок разоряется

II. Дом разоряется

III. Вы достигаете максимального количества ставок. (Вам нужен этот максимум, чтобы вы не застряли, симулируя навсегда.)

Функция должна возвращать сумму денег, которую игрок имеет после того, как были сделаны все ставки.

Запустите эту функцию много раз и сравните конечные деньги с начальными. Среднее значение конечных / начальных денежных средств является мерой вашего ожидания.

Попробуйте симуляцию с разными входами. (Например, во многих азартных играх, даже если вы теоретически могли бы заработать бесконечную сумму денег в долгосрочной перспективе, случайные вариации означают, что вы разорились до того, как попали туда).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...