Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > метод монте-карло


Автор: redwhite90 21.2.2012, 19:21
Написал покерный калькулятор, основанный на методе монте-карло. Если в кратце алгоритм таков:
сначала пользователь выставляет карты себе и своим соперникам, затем, по его желанию, выставляет карты на стол.
таким образом, остается некоторое количество неизвестных карт. Я моделирую ситуацию случайного выбора карты из оставшейся колоды и, таким образом, заполняю неизвестные карты. Далее смотрю у кого, что получилось и оцениваю, кто победил. Этот процесс повторяется n-ое количество раз. Таким образом можно сказать кто, с какой вероятностью победит.

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

не знаете, в чём может быть проблема?

Добавлено через 1 минуту и 56 секунд
вот пример:
http://www.pokerlistings.ru/odds-calculator

Автор: bsa 21.2.2012, 21:14
redwhite90, может проблема в том, что онлайн-калькуляторы используют теоретический рассчитанный процент, а ты эмпирически?

Автор: sQu1rr 21.2.2012, 21:22
Цитата(redwhite90 @  21.2.2012,  19:21 Найти цитируемый пост)
основанный на методе монте-карло

Уверены ли вы что калькулятор, ссылку которого вы выложили работает по этому же методу.
На мой взгляд он основан на чистой воды теории вероятности, где проработаны все возможные варианты.

Автор: redwhite90 21.2.2012, 22:01
дело в том, что я читал, что все калькуляторы используют метод монте-карло + какие то заранее просчитанные зависимости.

Добавлено через 3 минуты и 2 секунды
в подтверждении своих слов могу привести ссылку
http://ru.pokernews.com/poker-tools/poker-odds-calculator.htm
прочитайте описание

Добавлено через 8 минут и 19 секунд
кому лень:
Код

Подсчет проходит путем симуляции миллионов покерных рук, что делает наш покерный калькулятор (poker calculator) невероятно точным

Автор: boostcoder 21.2.2012, 22:14
Цитата(redwhite90 @  21.2.2012,  22:01 Найти цитируемый пост)
я читал, что все калькуляторы используют метод монте-карло

"во дворе стоИт сарай. на нем написаны три буквы. но там дрова!" (с)

Автор: redwhite90 21.2.2012, 23:30
boostcoder, Читай выше

Автор: boostcoder 22.2.2012, 00:28
Цитата(redwhite90 @  21.2.2012,  23:30 Найти цитируемый пост)
Читай

-
Цитата(boostcoder @  21.2.2012,  22:14 Найти цитируемый пост)
"во дворе стоИт сарай. на нем написаны три буквы. но там дрова!" (с)


Автор: redwhite90 22.2.2012, 10:24
boostcoder, 
Код

Подсчет проходит путем симуляции миллионов покерных рук, что делает наш покерный калькулятор (poker calculator) невероятно точным

это популярный калькулятор
http://ru.pokernews.com/poker-tools/poker-odds-calculator.htm

Автор: bsa 22.2.2012, 13:00
redwhite90, да мало ли что там написано. ты что, серьезно думаешь, что тебе в онлайне считают этим методом? Да сервер бы давно повесился бы.

Автор: Sahab 22.2.2012, 15:09
(facepalm)

Автор: boostcoder 22.2.2012, 17:17
жесть smile 
покерный калькулятор - эталон доверия))

Автор: redwhite90 23.2.2012, 02:21
bsa, а зачем им врать?

Добавлено через 8 минут и 2 секунды
boostcoder, на чём основаны ваши сомнения?

Автор: boostcoder 23.2.2012, 02:36
Цитата(redwhite90 @  23.2.2012,  02:21 Найти цитируемый пост)
на чём основаны ваши сомнения?

на том, что имею самое непосредственное отношение к производству онлайн игр ;)
карточные игры - приоритет номер один по количеству лжи ;)

Автор: redwhite90 23.2.2012, 13:50
boostcoder, тогда буду считать, что я правильно всё сделал)))

Автор: redwhite90 23.2.2012, 15:04
а если серьезно, то чьи цифры точнее ?

Автор: bsa 24.2.2012, 12:26
redwhite90, самые точные числа - теоретические. Так как они не зависят от фазы луны и т.п. Для получения таких же значений необходимо провести бесконечное число опытов. Ты этого сделать в реальной жизни не сможешь.

Автор: EgoBrain 24.2.2012, 14:20
Цитата(bsa @ 22.2.2012,  13:00)
redwhite90, да мало ли что там написано. ты что, серьезно думаешь, что тебе в онлайне считают этим методом? Да сервер бы давно повесился бы.

Так видно же, что на обоих приводимых калькуляторах вычисления происходят на строне клиента.
Я опробовал несколько комбинаций с участием двух игроков и разных раскладах на столе, мой Athlon 3500+ с гигом оперативы ни на миллисекунду не задумался, результаты мгновенно отображаются. А какие необходимы нагрузки, чтобы была хоть сколько заметная задержка, легко проверить.. Вобщем либо метод Монте-Карло не так уже тяжел в вычислениях, либо там действительно приблизительные псевдо вероятности.
redwhite90, если Вы утверждаете что компьютер вычислял минутами задачу, и Ваш метод математически верен, значит и впрям эти калькуляторы фигня полная.

Автор: redwhite90 24.2.2012, 20:51
EgoBrain, Я исправил пару мелких ошибок и результаты стали на порядок ближе(при работе порядка 5-10 секунд). Так что наверное в этих калькуляторах всё-таки просто более оптимизированы вычисления и использованы какие-то таблицы

Добавлено через 1 минуту и 11 секунд
и ещё в них обоих получаются идентичеые цифры, а это о чём-то да говорит

Автор: Sahab 29.2.2012, 02:25
Цитата(redwhite90 @  24.2.2012,  20:51 Найти цитируемый пост)
и ещё в них обоих получаются идентичеые цифры, а это о чём-то да говорит 

одной конторой запилены)

Автор: bsa 29.2.2012, 10:01
redwhite90, метод монте-карло невозможно применять быстро. Так как для адекватного качества результата необходимо провести огромное количество опытов. Поэтому быстро он работать по определению не может. Если "калькуляторы" считают быстро и без значительной загрузки машины, то они считают по теоретическим формулам (возможно, выведенным с помощью монте-карло).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)