В этой статье я постараюсь подробно изложить собственные опыты со ставками на 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'];
И все же, я предостерегаю от игры на деньги по этим системам - слишком быстро растет ставка и возможно превышение лимитов.