Эволюция ставочных систем на 2 дюжины

Vic | 24.10.2014 | 2 | 7181
chips

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

Все рассматриваемые системы имеют общий алгоритм ставок:
• Пропускаем первый ход;
• Делаем ставку на две не выпавшие дюжины;
• В случае проигрыша увеличиваем ставку согласно своей прогрессии;
• В случае выигрыша уменьшаем ставку...

Предпосылкой именно к такому ведению игры послужил расчет вероятностей. Ведь если ставить на 2 дюжины, то теоретически вероятность положительного исхода составляет 24/37 или 64.86%, т.е. независимо от распределения чисел мы гарантированно будем возвращаться к первоначальной ставке.

Мной были опробованы две последовательности:

Дональда с поправкой на шансы - т.е. на каждом шаге мы изменяем ставку не на 1 а на 2 (используется ставочная последовательность 1,3,5,7,9...) и последовательность Фибоначчи. Обе последовательности показали себя относительно плохо. Несмотря на то, что возврат к первоначальной ставке происходит регулярно, да и число выигрышей превосходит число проигрышей, тем не менее выигрыши не могут скомпенсировать суммарный проигрыш, ведь при таком способе ставок мы проигрываем в 2 раза больше чем можем выиграть.

Собственно к тому что пользоваться данными последовательностями не стоит в реальной игре остается только приложить код для пользовательской системы что бы можно было убедиться самостоятельно. Вот код для последовательности Дональда:


 if (number!==undefined){
  this.processNumber(number);
  if ((checkBet(number,this.game)>0)||(this.bet==0))
    this.bet=(this.bet>2*this.basebet)?this.bet-2*this.basebet:this.basebet; 
  else this.bet+=2*this.basebet;
  if (number){
   delete this.game;
   if (checkBet(number,this.gms[1])>0) this.game=new Array(this.gms[2],this.gms[3]);
   if (checkBet(number,this.gms[2])>0) this.game=new Array(this.gms[1],this.gms[3]);
   if (checkBet(number,this.gms[3])>0) this.game=new Array(this.gms[1],this.gms[2]);
  }
 } else {
  this.gms=[0,"1d","2d","3d"];
  this.bet=0;
  this.stratname="Doz Donald";
 }

и для последовательности Фибоначчи:


 if (number!==undefined){
  this.processNumber(number);
  if ((checkBet(number,this.game)>0)||(this.bet==0))this.t=(this.t>1)?this.t-1:1; else this.t+=1;
  this.bet=fibo(this.t)*this.basebet;
  if (number){
   delete this.game;
   if (checkBet(number,this.gms[1])>0) this.game=new Array(this.gms[2],this.gms[3]);
   if (checkBet(number,this.gms[2])>0) this.game=new Array(this.gms[1],this.gms[3]);
   if (checkBet(number,this.gms[3])>0) this.game=new Array(this.gms[1],this.gms[2]);
  }
 } else {
  this.t=1;
  this.gms=[0,"1d","2d","3d"];
  this.bet=0;
  this.stratname="Doz Fibo";
 }

для игры на столбцы следует заменить массив с играми:


  this.gms=[0,"1c","2c","3c"];

Чтож, описанные последовательности действительно плохи для игры указанным способом. Неужели нельзя подобрать для него свою последовательность? Можно! И это последовательность степеней двойки - (1, 2, 4, 8, 16, 32 ...). При следовании этой последовательности каждая следующая ставка в случае выигрыша полностью компенсирует проигравшую предыдущую, а поскольку при описанном способе ставок число положительно сыгранных спинов будет больше чем число проигранных спинов, то даже получится и что-то выиграть...

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


 if (number!==undefined){
  this.processNumber(number);
  if ((checkBet(number,this.game)>0)||(this.bet==0))this.t=(this.t>0)?this.t-1:0; else this.t+=1;
  this.bet=Math.pow(2,this.t)*this.basebet;
  if (number){
   delete this.game;
   if (checkBet(number,this.gms[1])>0) this.game=new Array(this.gms[2],this.gms[3]);
   if (checkBet(number,this.gms[2])>0) this.game=new Array(this.gms[1],this.gms[3]);
   if (checkBet(number,this.gms[3])>0) this.game=new Array(this.gms[1],this.gms[2]);
  }
 } else {
  this.t=0;
  this.gms=[0,"1d","2d","3d"];
  this.bet=0;
  this.stratname="Doz Pow";
 }

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


 if (number!==undefined){
  this.processNumber(number);
  if ((checkBet(number,this.game)>0)||(this.bet==0))this.bet=this.basebet; else this.bet*=3;
  if (number){
   delete this.game;
   if (checkBet(number,this.gms[1])>0) this.game=new Array(this.gms[2],this.gms[3]);
   if (checkBet(number,this.gms[2])>0) this.game=new Array(this.gms[1],this.gms[3]);
   if (checkBet(number,this.gms[3])>0) this.game=new Array(this.gms[1],this.gms[2]);
  }
 } else {
  this.gms=[0,"1d","2d","3d"];
  this.bet=0;
  this.stratname="Doz Martingale";
 }

Возможно этот код и поможет кому-нибудь в его поисках своей собственной системы...

добавлено 27.12.2016:

по просьбе, высказанной в комментариях посетителем rykowik, я реализовал код для систем Doz Pow и Doz Martingale в которых дюжины для ставок выбираются методом повтора (подробнее об этом и других методах выбора дюжин для ставок читайте в статье Эволюция ставочных систем на 2 дюжины. часть 2).

Код для системы Doz Martingale со ставками на 2 последние дюжины:


 if (number!==undefined){
  this.processNumber(number);
  if ((checkBet(number,this.game)>0)||((this.bet==0)&&(this.game.length==2)))
   this.bet=this.basebet; else this.bet*=3;
  
  if (number){
   for(i=1;i<=3;i++) if (checkBet(number,this.gms[i])>0) this.cur=this.gms[i];
   if ((this.game.length>1)&&(this.game[1]!=this.cur)){
    this.game.shift();
   } else if ((this.game.length==1)&&(this.game[0]!=this.cur)){
    this.bet=this.basebet;
   } 
   if ((this.game.length==0)||((this.game.length==1)&&(this.game[0]!=this.cur))){
    this.game.push(this.cur);
   }
  }
 } else {
  this.gms=[0,'1d','2d','3d'];
  this.bet=0;
  this.cur=0; //текущий шанс
  this.game=new Array;
  this.stratname='Doz Martingale (повтор)';
 }

Код для системы Doz Pow со ставками на 2 последние дюжины:


  if (number!==undefined){
  this.processNumber(number);
  if ((checkBet(number,this.game)>0)||((this.bet==0)&&(this.game.length==2)))
    this.t=(this.t>0)?this.t-1:0; else this.t+=1;
  if (this.game.length==2)
   this.bet=Math.pow(2,this.t)*this.basebet; else this.t=0;
  if (number){
   for(i=1;i<=3;i++) if (checkBet(number,this.gms[i])>0) this.cur=this.gms[i];
   if ((this.game.length>1)&&(this.game[1]!=this.cur)){
    this.game.shift();
   } else if ((this.game.length==1)&&(this.game[0]!=this.cur)){
    this.bet=this.basebet;
   } 
   if ((this.game.length==0)||((this.game.length==1)&&(this.game[0]!=this.cur))){
    this.game.push(this.cur);
   }
  }
 } else {
  this.t=0;
  this.gms=[0,'1d','2d','3d'];
  this.bet=0;
  this.cur=0; //текущий шанс
  this.game=new Array;
  this.stratname='Doz Pow (повтор)';
 }

Для игры по этим системам на колонны следует заменить строчку:


  this.gms=[0,'1d','2d','3d'];

на:


  this.gms=[0,'1c','2c','3c'];

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

Комментарии

guest[31 August 2020]
Ошибка при последовательности 1,2,4,8,16,32 в ноль не выйдешь, только если на втором шаге

Vic[19 September 2020]
Никакой ошибки нет. Читаем внимательно весь текст а не выхватываем одну фразу.

Имя :
email:
сайт :

Перепишите КОД сюда: