Re:Модель некорректна


Автор сообщения: Michael
Дата и время сообщения: 26 October 2004 at 20:24:44:

В ответ на сообщение: Re: ?(-)

Ошибка в том, что Вы некорректно моделируете поведение игроков. В Вашем случае

> bet = 1+(players[j] * rand()) /(RAND_MAX+1)

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

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

Эту ситуацию я объяснял ещё в самом начале:
http://hbar.phys.msu.ru/gorm/wwwboard/messages80/32049.html - см. самое последнее предложение.

Теперь что происходит с Вашей моделью. Матожидание выигрыша казино всё равно 0. Но при такой стратегии игроков шанс на выигрыш после каждой итерации близок к 1. Шанс на проигрыш казино близок к 0, но этот проигрыш будет очень велик и покроет все предыдущие выигрыши.

Если шансы выигрыш-проигрыш 100:1, то, запустив модель 10,000 раз, Вы получите около 99 проигрышей. Но если шансы выигрыш-проигрыш 10,000,000:1 то Вам надо запустить Монте-Карло 10,000,000,000 раз, чтобы примерно оценить поведение модели. В Вашем случае шансы игрока на выигрыш настолько малы (учитывая огромный резерв денег у казино), что Ваша модель просто пропускает их. Вам надо гнать её недели напролёт, чтобы увидеть, что казино время от времени на итерации i проигрывает назад все выигранные деньги кому-то из игроков.

Используемая в этой эмуляции модель не отражает адекватно ситуации, она некорретна.

Если Вы не поняли моего объяснения, не спешите спорить. Я обещаю, что всё Вам подробно объясню, если у Вас будет желание. Пока сделайте вот что. Пусть игроки играют на постоянную ставку. К примеру:

bet = 10; if (players[j] < bet) bet = players[j];

Ставка не должна увеличиваться после их выигрыша. Запустите модуль. Посмотрите на тренд.

С уважением,
Michael


1807. Возвращение честного шашлычника - Michael 22:41 17.10.04 (223)
К списку тем на странице