2010-03-15 3 views
0

Так как в колоде есть 52 карты, мы знаем, что есть 52 choose 2 = 1326 различных матчей, однако в префлоп-покере это можно разделить на 169 различных рук, таких как AK offsuit и AK, Сердце K сердец или лопата K пики не имеет никакого значения на префлопе. Мой вопрос в том, есть ли хорошее математическое свойство, в котором я могу однозначно индексировать каждую из этих 169 рук (от 0 до 168 предпочтительно). Я пытаюсь создать таблицу поиска как double[][] = new double [169][169], но не имеет возможности изменить представление руки, такое как AK (Ace и King of the same suit), на уникальный индекс в этом массиве.Вычисление уникального индекса для каждой стартовой руки в покере

+2

Если ваша таблица поиска будет сравнивать две разные стартовые руки друг против друга, обратите внимание, что подходит * делает * значение - например, шансы 'KhQh' против' AsTc' отличаются от 'KhQh' vs' AhTc ', хотя оба являются' KQs' vs 'ATo'. – caf

ответ

2
  1. Если карты одного и того же костюма, соберите две карты, чтобы первая карта была первой. Если у них разные костюмы, соберите две карты, чтобы последняя карта была последней. Специальный случай будет зарезервирован, если карты имеют одинаковый ранг и костюм.
  2. Назначьте каждому рангу значение от 0 до 12 и используйте систему подсчета базы-13. Наибольшее значение в этой системе составляет 12 * 13 + 12 = 168.
  3. Наконец, для случаев, когда обе карты имеют одинаковый ранг и костюм, возьмите значение ранга и добавьте 169 к нему. Эти случаи будут находиться в диапазоне 169-181.

Возможно, моя математика ошибочна, но я придумал 182 отдельных пары карт. Я не эксперт в игре, так что, может быть, я что-то упустил.

+0

Звучит довольно правильно, и у нас никогда не будет 2 одинаковых карт (так как только одна из каждой карты существует в стандартной колоде) – Aly

+1

Пусть 0-9 представляют 0-9, A = 10, B = 11 и C = 12. Это наши цифры. В базе 13 вы можете иметь B3, который будет преобразован в десятичный как B (т. Е. 11) раз 13 + 3 или 146. Имеет ли это смысл? –

+0

О, и ваш ответ о том, что у вас нет двух одинаковых карт, теперь кажется очевидным, что вы объяснили это. :) ' (я мог бы играть невиновным и требовать, чтобы я принимал несколько колод, но я просто не думал об этом вообще.) –

0

Да.

Пример готового анализатора 7-и и 5-карточного объекта Objective-C (и Java) Texas Hold'em можно найти here и далее объясняется here. Он «добавляет» вверх руки для создания индекса, который достаточно характеризует руку для определения ранга.

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

 Смежные вопросы

  • Нет связанных вопросов^_^