Как программно рассчитать шансы на покер?

#statistics #probability #poker

Вопрос:

Я пытаюсь написать простую игру/утилиту для расчета коэффициентов в покере. Я знаю, что есть много ресурсов, которые рассказывают о формулах для этого, но, думаю, у меня возникли проблемы с переводом этого в код. В частности, меня интересует Техасский холдем …

Я понимаю, что существует несколько различных подходов, один из которых заключается в том, что вы можете рассчитать шансы на то, что вы вытянете какую-то руку, основываясь на картах, которые вы видите. Другой подход заключается в расчете шансов на то, что вы выиграете определенную комбинацию. Второй подход кажется гораздо более сложным, так как вам придется вводить больше данных (сколько игроков и т. Д.).

Я не прошу вас написать это для меня, но некоторые толчки в правильном направлении помогли бы 🙂

Комментарии:

1. Как только вы заработаете, добавите ли вы в расчет коэффициентов банка, чтобы все сводилось к двоичному решению для ситуаций колла/фолда?

2. Не ответ, что делает его комментарием/подталкиванием — оценщик с открытым исходным кодом в Objective-C (в первую очередь C) и Java можно найти здесь: specialk-coding.blogspot.com/2010/04/… (ссылка в конце статьи на проекты Google).

Ответ №1:

Вот несколько ссылок на статьи, которые могут помочь в качестве отправной точки: Логика покера на C# и быстрая оценка и анализ Техасского холдема

«Этот фрагмент кода позволит вам рассчитать вероятности покера сложным способом, используя C# и .NET».

Теоретические основы приведены в этой статье Википедии о вероятностях покера и в этом превосходном учебном пособии по статистике.

Пример полного проекта, написанного на Objective-C, Java, C/C или Python, можно найти в SpecialKEval. Дополнительные ссылки и чтение можно найти в нем.

Ответ №2:

Моделирование методом Монте — Карло — это распространенный подход для расчета коэффициентов для покерных раздач. Существует множество примеров реализации такого рода моделирования для холдема в сети.

http://www.codeproject.com/KB/game/MoreTexasHoldemAnalysis1.aspx

Комментарии:

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

Ответ №3:

Взгляните на pokersource, если у вас достаточно сильные способности C. Боюсь, это не просто, но некоторые вещи, которые вы ищете, сложны. Программа оценки покера, использующая библиотеку, вероятно, сделает многое из того, что вы хотите, если вы сможете правильно настроить формат ввода (тоже непросто). Такие сайты, как этот или этот, также используют эту библиотеку AFAIK.

Тем не менее, могло быть и хуже, вы могли бы захотеть вычислить что-то хитрое, например, Омаха Хай-ло…

Ответ №4:

Pokersource и статистические статьи-неплохие предложения. Но это действительно лучше всего сделать с помощью моделирования по методу Монте-Карло, полезного, простого и мощного подхода к решению такого рода сложных задач.

Он одинаково хорошо работает как с Омахой Хай-лоу, так и с холдемом

Ответ №5:

Взгляните также и сюда:

http://specialk-coding.blogspot.com/2010/04/texas-holdem-7-card-evaluator_23.html

Моделирование методом Монте-Карло часто выполняется медленнее, чем хорошие точные оценщики.

Ответ №6:

Полный исходный код для программы оценки покерных игр в Техасский холдем можно найти здесь:

http://www.advancedmcode.org/poker-predictor.html

Он построен для matlab, идентификатор графического интерфейса закодирован m, но вычислительный движок-c .

Это позволяет рассчитать шансы и вероятность. Он может работать на моем ноутбуке с частотой 2,4 ГГц с вычислением 100000 игр для 10 игроков за 0,3 секунды.

Точный компьютер в реальном времени:-)

Комментарии:

1. Это довольно быстро, но не так быстро — в открытом доступе есть оценщики, которые дают точные ответы (т. Е. Без выборки), по крайней мере, в 10 раз быстрее.