04.03.2016 00:31 |
Ласкер |
Цитата:
Сообщение от BOBA
Ласкер, до меня постепенно доходит, что ты написал про нулевую сумму. Да, статистика - забавная штука.
|
Про нулевое матожидание, если совсем точно.
Сумма_выиграно/Сумма_проиграно -> вероятность_выигрыша/вероятность_проигрыша.
При любой системе ставок.
Меняется лишь % выигранных партий от количества денег у игроков. Но не суммарный выигрыш.
↓↓ ...Это и обеспечивает стабильный доход казино, который стремится к 1/74 от суммы всех ставок на "цвет" в европейской рулетке (когда зеро забирает половину) при ЛЮБОЙ системе ставок.
А ограничения размеров ставок никак не мешают игрокам выигрывать. Их смысл:
- уменьшение амплитуды флуктуаций, т.к. обязательно будут и плюсовые, и минусовые дни;
- прибыль должна окупать прямые расходы, "игра не стоит свеч" именно об этом.
|
03.03.2016 22:39 |
Tytgrom |
Вова, у нас к тебе вопрос
http://project.megarulez.ru/forums/s...2&postcount=25
|
03.03.2016 22:38 |
BOBA |
Ласкер, до меня постепенно доходит, что ты написал про нулевую сумму. Да, статистика - забавная штука.
|
03.03.2016 18:55 |
квит |
Цитата:
Сообщение от Ласкер
Только сейчас увидел эти графики.
Зачем зеркально дублировать красный и синий, я не понял.
|
так я тебя про них и спрашивал )))
Цитата:
Не имею понятия, чем ты пользуешься, и можно ли задать полный алгоритм ставок. В принципе, первый игрок при невозможности удвоения может возвращаться сразу к начальному размеру ставки (это многократно удлинняет партию, но на результат не влияет). Либо сразу поставить остаток и вернуться к начальной в случае его удвоения.
|
в матлабе код накидал на скору руку
|
03.03.2016 16:16 |
BOBA |
ну вот. у первого игрока 40-60 денег, у второго - ровно 50, играли по монете. от каждого варианта разыграли 1000 партий
↓↓ р-ты
Сервер сценариев Windows (Microsoft R) версия 5.8
c Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.
FirstInit 40
WinFirst 451
WinSecond 549
WinNothing 0
AvgMoves 2008.116
MinMoves 166
MaxMoves 13228
FirstInit 41
WinFirst 431
WinSecond 569
WinNothing 0
AvgMoves 2075.467
MinMoves 147
MaxMoves 12987
FirstInit 42
WinFirst 453
WinSecond 547
WinNothing 0
AvgMoves 2104.066
MinMoves 176
MaxMoves 9792
FirstInit 43
WinFirst 449
WinSecond 551
WinNothing 0
AvgMoves 2196.071
MinMoves 155
MaxMoves 13894
FirstInit 44
WinFirst 475
WinSecond 525
WinNothing 0
AvgMoves 2228.436
MinMoves 192
MaxMoves 12366
FirstInit 45
WinFirst 471
WinSecond 529
WinNothing 0
AvgMoves 2323.249
MinMoves 221
MaxMoves 13468
FirstInit 46
WinFirst 484
WinSecond 516
WinNothing 0
AvgMoves 2454.082
MinMoves 184
MaxMoves 17440
FirstInit 47
WinFirst 507
WinSecond 493
WinNothing 0
AvgMoves 2461.165
MinMoves 219
MaxMoves 13061
FirstInit 48
WinFirst 481
WinSecond 519
WinNothing 0
AvgMoves 2374.53
MinMoves 210
MaxMoves 11680
FirstInit 49
WinFirst 457
WinSecond 543
WinNothing 0
AvgMoves 2430.779
MinMoves 217
MaxMoves 13118
FirstInit 50
WinFirst 515
WinSecond 485
WinNothing 0
AvgMoves 2495.976
MinMoves 214
MaxMoves 16264
FirstInit 51
WinFirst 533
WinSecond 467
WinNothing 0
AvgMoves 2588.749
MinMoves 203
MaxMoves 15747
FirstInit 52
WinFirst 508
WinSecond 492
WinNothing 0
AvgMoves 2630.974
MinMoves 234
MaxMoves 16664
FirstInit 53
WinFirst 505
WinSecond 495
WinNothing 0
AvgMoves 2721.323
MinMoves 156
MaxMoves 29902
FirstInit 54
WinFirst 533
WinSecond 467
WinNothing 0
AvgMoves 2718.318
MinMoves 212
MaxMoves 17578
FirstInit 55
WinFirst 505
WinSecond 495
WinNothing 0
AvgMoves 2693.481
MinMoves 154
MaxMoves 16100
FirstInit 56
WinFirst 552
WinSecond 448
WinNothing 0
AvgMoves 2856.72
MinMoves 188
MaxMoves 19060
FirstInit 57
WinFirst 527
WinSecond 473
WinNothing 0
AvgMoves 2881.881
MinMoves 179
MaxMoves 16226
FirstInit 58
WinFirst 540
WinSecond 460
WinNothing 0
AvgMoves 2874.896
MinMoves 252
MaxMoves 18808
FirstInit 59
WinFirst 538
WinSecond 462
WinNothing 0
AvgMoves 2964.004
MinMoves 158
MaxMoves 19036
FirstInit 60
WinFirst 545
WinSecond 455
WinNothing 0
AvgMoves 3137.142
MinMoves 248
MaxMoves 18034
|
03.03.2016 14:01 |
BOBA |
уффф. а то испугался, была очепятка
если первый начинает ставить больше при выигрыше, он выигрывает чаще. по теории пока непонятно. не могу сие объяснить.
все нормально. отход от осторожной стратегии - единичных ставок - только уменьшает время игры
1000 партий, 30 фишек в начале.
WinFirst 478
WinSecond 522
WinNothing 0
AvgMoves 488.812
var strategy=function(curr_cash, opp_cash) {
var r= (curr_cash>init_cash1) ? curr_cash-init_cash1 : 1;
// WScript.echo ('='+curr_cash+' '+init_cash1+" "+opp_cash+ ' '+r);
r= r<=opp_cash ? r : opp_cash;
return r;
}
перевод - если у меня больше чем было до партии - поставить на кон весь выигрышь, не превышающий текущего баланса оппонента.
↓↓ кодvar totgames=1000;
var init_cash1=30;
var init_cash2=30;
var max_moves=10000;
var tot_cnt=0
var ares={first:0 , second:0 , nothing:0};
var strategy=function(curr_cash, opp_cash) {
var r= (curr_cash>init_cash1) ? curr_cash-init_cash1 : 1;
// WScript.echo ('='+curr_cash+' '+init_cash1+" "+opp_cash+ ' '+r);
r= r<=opp_cash ? r : opp_cash;
return r;
}
var party=function() {
var first_summ=init_cash1,
second_summ=init_cash2,
cnt=0,
c, res={winner:"",cnt:0};
//WScript.echo ('===============');
while ((first_summ>0 && second_summ>0 ) && cnt<max_moves) {
c= strategy(first_summ, second_summ) * ( (Math.random()>0.5) ? 1 : -1 );
first_summ+=c;
second_summ-=c;
cnt++;
//WScript.echo (""+c+": "+first_summ+"/"+second_summ);
} ;
if (cnt>=max_moves) { res.winner='nothing' }
else { res.winner= (first_summ>0) ? 'first' : 'second' }
res.cnt=cnt;
return res;
} ;
for (i=0; i<totgames; i++) {
var r=party();
ares[r.winner]+=1;
tot_cnt+=r.cnt;
}
WScript.echo ('WinFirst ' + ares.first);
WScript.echo ('WinSecond ' + ares.second);
WScript.echo ('WinNothing ' + ares.nothing);
WScript.echo ('AvgMoves ' + (tot_cnt/totgames));
|
03.03.2016 13:50 |
Ласкер |
Цитата:
Сообщение от BOBA
та фиг его знает, эмулятор то может и того, вроде недолго писать хоть на васике, а где тру-гсч взять? я как то не морочился, пользовался хреновато - встроенными.
|
На васике и буду писать, когда возможность будет.
Пока к встроенному ГСЧ у меня замечаний нет. Отклонение приемлемое.
Не знаю, правда, какие результаты будут на мегабайте данных - тестировать надо.
↓↓ ...Вообще, это задача для школьников. И по математике, и по информатике. Мне оно было интересно в плане поскрипеть извилинами. У вас с Квитом задачки-то посерьезнее. И решение оплачивается.
|
03.03.2016 12:51 |
BOBA |
а если в начале по 20 монеток
- партия растягивается на 400 ходов (50 партий в модели)
WinFirst 26
WinSecond 24
WinNothing 0
AvgMoves 401.96
теперь играем 20 монет против 10. 500 партий
WinFirst 341
WinSecond 159
WinNothing 0
AvgMoves 204.308
и 20 против 15
WinFirst 287
WinSecond 213
WinNothing 0
AvgMoves 290.662
20 против 19 - тысяча партий
WinFirst 534
WinSecond 466
WinNothing 0
AvgMoves 367.443
|
03.03.2016 12:41 |
BOBA |
та фиг его знает, эмулятор то может и того, вроде недолго писать хоть на васике, а где тру-гсч взять? я как то не морочился, пользовался хреновато - встроенными.
ну вот, играем 6 игр, начиная с 10 фишек, ставка по одной фишке
↓↓ модель (mdl.js)var totgames=6;
var init_cash=10;
var max_moves=100;
var tot_cnt=0
var ares={first:0 , second:0 , nothing:0};
var party=function() {
var first_summ=init_cash,
second_summ=init_cash,
cnt=0,
c, res={winner:"",cnt:0};
WScript.echo ('===============');
while ((first_summ!=0 && second_summ!=0 ) && cnt<max_moves) {
c= (Math.random()>0.5) ? 1 : -1;
first_summ+=c;
second_summ-=c;
cnt++;
WScript.echo (""+c+": "+first_summ+"/"+second_summ);
} ;
if (cnt>max_moves) { res.winner='nothing' }
else { res.winner= (first_summ>0) ? 'first' : 'second' }
res.cnt=cnt;
return res;
} ;
for (i=0; i<totgames; i++) {
var r=party();
ares[r.winner]+=1;
tot_cnt+=r.cnt;
}
WScript.echo ('WinFirst ' + ares.first);
WScript.echo ('WinSecond ' + ares.second);
WScript.echo ('WinNothing ' + ares.nothing);
WScript.echo ('AvgMoves ' + (tot_cnt/totgames));
↓↓ резСервер сценариев Windows (Microsoft R) версия 5.8
c Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.
===============
-1: 9/11
-1: 8/12
-1: 7/13
-1: 6/14
-1: 5/15
-1: 4/16
-1: 3/17
1: 4/16
1: 5/15
1: 6/14
-1: 5/15
-1: 4/16
1: 5/15
1: 6/14
-1: 5/15
1: 6/14
1: 7/13
1: 8/12
1: 9/11
-1: 8/12
-1: 7/13
1: 8/12
-1: 7/13
1: 8/12
-1: 7/13
-1: 6/14
-1: 5/15
1: 6/14
-1: 5/15
-1: 4/16
-1: 3/17
1: 4/16
1: 5/15
-1: 4/16
-1: 3/17
-1: 2/18
-1: 1/19
1: 2/18
-1: 1/19
1: 2/18
-1: 1/19
-1: 0/20
===============
1: 11/9
-1: 10/10
-1: 9/11
1: 10/10
1: 11/9
1: 12/8
1: 13/7
-1: 12/8
1: 13/7
-1: 12/8
-1: 11/9
-1: 10/10
1: 11/9
1: 12/8
-1: 11/9
-1: 10/10
-1: 9/11
1: 10/10
-1: 9/11
-1: 8/12
1: 9/11
-1: 8/12
-1: 7/13
1: 8/12
-1: 7/13
1: 8/12
1: 9/11
1: 10/10
-1: 9/11
-1: 8/12
1: 9/11
-1: 8/12
1: 9/11
1: 10/10
-1: 9/11
-1: 8/12
1: 9/11
1: 10/10
1: 11/9
1: 12/8
-1: 11/9
1: 12/8
-1: 11/9
1: 12/8
-1: 11/9
1: 12/8
-1: 11/9
1: 12/8
-1: 11/9
1: 12/8
-1: 11/9
-1: 10/10
1: 11/9
1: 12/8
1: 13/7
1: 14/6
-1: 13/7
1: 14/6
-1: 13/7
1: 14/6
-1: 13/7
1: 14/6
-1: 13/7
1: 14/6
-1: 13/7
-1: 12/8
1: 13/7
1: 14/6
-1: 13/7
-1: 12/8
-1: 11/9
-1: 10/10
1: 11/9
1: 12/8
-1: 11/9
1: 12/8
1: 13/7
-1: 12/8
1: 13/7
-1: 12/8
-1: 11/9
-1: 10/10
-1: 9/11
1: 10/10
1: 11/9
1: 12/8
1: 13/7
-1: 12/8
-1: 11/9
-1: 10/10
-1: 9/11
1: 10/10
1: 11/9
1: 12/8
-1: 11/9
1: 12/8
1: 13/7
1: 14/6
1: 15/5
1: 16/4
===============
-1: 9/11
1: 10/10
-1: 9/11
1: 10/10
-1: 9/11
-1: 8/12
-1: 7/13
-1: 6/14
1: 7/13
1: 8/12
-1: 7/13
1: 8/12
1: 9/11
-1: 8/12
-1: 7/13
-1: 6/14
-1: 5/15
1: 6/14
1: 7/13
-1: 6/14
1: 7/13
1: 8/12
-1: 7/13
-1: 6/14
1: 7/13
1: 8/12
1: 9/11
1: 10/10
-1: 9/11
-1: 8/12
1: 9/11
-1: 8/12
1: 9/11
1: 10/10
-1: 9/11
-1: 8/12
1: 9/11
-1: 8/12
1: 9/11
-1: 8/12
-1: 7/13
-1: 6/14
1: 7/13
-1: 6/14
1: 7/13
-1: 6/14
-1: 5/15
1: 6/14
1: 7/13
1: 8/12
1: 9/11
1: 10/10
1: 11/9
-1: 10/10
1: 11/9
1: 12/8
1: 13/7
-1: 12/8
1: 13/7
1: 14/6
-1: 13/7
1: 14/6
1: 15/5
1: 16/4
-1: 15/5
-1: 14/6
-1: 13/7
1: 14/6
1: 15/5
-1: 14/6
1: 15/5
1: 16/4
-1: 15/5
-1: 14/6
-1: 13/7
-1: 12/8
-1: 11/9
1: 12/8
1: 13/7
1: 14/6
1: 15/5
-1: 14/6
-1: 13/7
-1: 12/8
1: 13/7
-1: 12/8
1: 13/7
1: 14/6
1: 15/5
1: 16/4
1: 17/3
-1: 16/4
1: 17/3
1: 18/2
1: 19/1
-1: 18/2
1: 19/1
-1: 18/2
1: 19/1
1: 20/0
===============
-1: 9/11
-1: 8/12
-1: 7/13
-1: 6/14
1: 7/13
1: 8/12
-1: 7/13
1: 8/12
1: 9/11
-1: 8/12
1: 9/11
1: 10/10
1: 11/9
1: 12/8
1: 13/7
1: 14/6
1: 15/5
-1: 14/6
-1: 13/7
-1: 12/8
-1: 11/9
1: 12/8
-1: 11/9
-1: 10/10
1: 11/9
1: 12/8
1: 13/7
-1: 12/8
1: 13/7
-1: 12/8
-1: 11/9
-1: 10/10
1: 11/9
1: 12/8
1: 13/7
-1: 12/8
-1: 11/9
1: 12/8
1: 13/7
-1: 12/8
-1: 11/9
-1: 10/10
-1: 9/11
-1: 8/12
1: 9/11
-1: 8/12
1: 9/11
-1: 8/12
-1: 7/13
1: 8/12
-1: 7/13
-1: 6/14
1: 7/13
-1: 6/14
-1: 5/15
-1: 4/16
1: 5/15
-1: 4/16
1: 5/15
1: 6/14
-1: 5/15
1: 6/14
1: 7/13
1: 8/12
-1: 7/13
1: 8/12
-1: 7/13
-1: 6/14
-1: 5/15
1: 6/14
-1: 5/15
-1: 4/16
1: 5/15
1: 6/14
-1: 5/15
1: 6/14
1: 7/13
-1: 6/14
-1: 5/15
-1: 4/16
1: 5/15
-1: 4/16
-1: 3/17
-1: 2/18
-1: 1/19
-1: 0/20
===============
-1: 9/11
1: 10/10
-1: 9/11
1: 10/10
-1: 9/11
1: 10/10
1: 11/9
-1: 10/10
-1: 9/11
-1: 8/12
-1: 7/13
-1: 6/14
-1: 5/15
1: 6/14
1: 7/13
1: 8/12
1: 9/11
-1: 8/12
1: 9/11
1: 10/10
1: 11/9
1: 12/8
-1: 11/9
-1: 10/10
1: 11/9
1: 12/8
-1: 11/9
-1: 10/10
-1: 9/11
1: 10/10
1: 11/9
1: 12/8
-1: 11/9
-1: 10/10
-1: 9/11
1: 10/10
1: 11/9
1: 12/8
-1: 11/9
1: 12/8
-1: 11/9
-1: 10/10
-1: 9/11
1: 10/10
-1: 9/11
1: 10/10
-1: 9/11
1: 10/10
1: 11/9
-1: 10/10
1: 11/9
-1: 10/10
-1: 9/11
-1: 8/12
1: 9/11
-1: 8/12
1: 9/11
1: 10/10
1: 11/9
-1: 10/10
-1: 9/11
1: 10/10
-1: 9/11
1: 10/10
-1: 9/11
-1: 8/12
-1: 7/13
-1: 6/14
1: 7/13
-1: 6/14
1: 7/13
1: 8/12
-1: 7/13
1: 8/12
-1: 7/13
-1: 6/14
1: 7/13
-1: 6/14
-1: 5/15
-1: 4/16
-1: 3/17
-1: 2/18
-1: 1/19
-1: 0/20
===============
-1: 9/11
-1: 8/12
1: 9/11
1: 10/10
1: 11/9
1: 12/8
-1: 11/9
-1: 10/10
-1: 9/11
1: 10/10
-1: 9/11
-1: 8/12
-1: 7/13
1: 8/12
1: 9/11
-1: 8/12
1: 9/11
1: 10/10
-1: 9/11
1: 10/10
-1: 9/11
1: 10/10
-1: 9/11
-1: 8/12
1: 9/11
-1: 8/12
-1: 7/13
-1: 6/14
-1: 5/15
-1: 4/16
-1: 3/17
-1: 2/18
-1: 1/19
1: 2/18
-1: 1/19
-1: 0/20
WinFirst 2
WinSecond 4
WinNothing 0
AvgMoves 74.66666666666667
видим, что при минимальной ставке средняя длина партии - 74 хода.
|
03.03.2016 06:59 |
Ласкер |
Цитата:
Сообщение от квит
второй запуск - свыше 200 бросков, 1ый таки дотянул, 2 разорился
третий запуск - меньше 50 бросков, 1ый разорился
↓↓ ...
|
Только сейчас увидел эти графики.
Зачем зеркально дублировать красный и синий, я не понял.
Не имею понятия, чем ты пользуешься, и можно ли задать полный алгоритм ставок. В принципе, первый игрок при невозможности удвоения может возвращаться сразу к начальному размеру ставки (это многократно удлинняет партию, но на результат не влияет). Либо сразу поставить остаток и вернуться к начальной в случае его удвоения.
↓↓ ...Для эксперимента я предполагал запилить простенький эмулятор, которому можно скормить пару мегабайт данных от тру-ГСЧ.
Возможности сейчас у меня нет, к сожалению.
Как, впрочем, и оптимистов с мотивацией...
|