Пилю программку по обсчёту китайского покера

Последний пост:11:18
5
1 6 7 8 9
  • БиллиУбили, про евшку незаконченной руки ... я так понимаю ты делаешь солвер на последнии сдачи ... без учета руки оппа ...
    40/42
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • Цитата (c00l0ne @ 14.2.2019) *
    я так понимаю ты делаешь солвер на последнии сдачи ... без учета руки оппа ...
    да, солвер. С учётом карт соперника. Практически всегда рукой противника можно пренебречь, за исключением скупа, когда нужно уменьшить свои очки, но избежать -6(или, наоборот, получить +6). Крайне редкие ситуации, но их тоже можно учесть.
    66/75
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • Чудны дела твои, господи. Переписал алгоритм в пользу перебора(без заглядывания вперёд) и наивно думал, что он будет работать быстрее. Но нет. На 50К комбинаций ушло почти 6 мин, что в 4 раза больше. А казалось бы...
    Но зато вот эта задачка Из 12 девушек и 10 юношей выбирают команду, состоящую из пяти человек. Сколькими способами можно выбрать эту команду так, чтобы в нее вошло не более трех юношей? натолкнула меня на мысль полностью поменять алгоритм. В который раз подряд...
    67/75
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • БиллиУбили, задачник) в колоде 22 карты , 10 карт белые остальные черные
    какова вероятность что из 5 вытянут карт белых будет 3 и более ...
    решается гипергеометрической прогрессией ...
    могу вероятность в табличке глянуть , флеш трижды )
    41/42
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • c00l0ne,
    Цитата (c00l0ne @ 15.2.2019) *
    решается гипергеометрической прогрессией ...
    что-то я о такой не слышал...ну, да и хрен с ней.
    как я и предполагал, сортировка НЕ тормозит алгоритм(она по-прежнему нужна, но в ограниченном обьёме). Так же ничего не решает переход на целые числа. Новый алгоритм(по мотивам задачки) пока не тормозит, появилась надежда выйти на перебор комбинаций.
    (на самом деле, это был последний вариант в идеях алгоритма, и я оставлял его в резерве, так как считал, что он будет медленнее всех. А вышло вон оно как).
    68/75
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • БиллиУбили, ага чет словечко перепутал гипергеометрическим распределением решается точно
    https://ru.wikipedia.org/wiki/%D0%93%D0%B8%D0%BF%D0%B5%D1%80%D0%B3%D0%B5%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5

    пс мы все ждем когда же потухнет мотор )

    Цитата
    Новый алгоритм
    план Б
    Спойлер: Показать


    ты напиши где у тебя сортировка используется
    с битовыми операциями там вообще какая сортировка возможна?
    Сообщение отредактировал c00l0ne - 15.2.2019, 12:02
    42/42
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • Цитата (c00l0ne @ 15.2.2019) *
    мы все ждем когда же потухнет мотор )
    Ну, либо написанный алгоритм считает за приемлемое время, либо полную переборку сократить(упростить) невозможно.

    Цитата (c00l0ne @ 15.2.2019) *
    план Б
    это уже план В

    Цитата (c00l0ne @ 15.2.2019) *
    ты напиши где у тебя сортировка используется
    с битовыми операциями там вообще какая сортировка возможна
    я сортирую строки. Пользуюсь стандартной библиотекой. Теоретически, строки можно заменить на числа, но для строк у меня уже есть решение, а для чисел нет. В предыдущих вариантах алгоритма в ситуациях, где было совсем мало чисел, я сортировал их вручную(циклом).
    69/75
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • Так, что-то я немного запутался. В этом примере https://forum.gipsyteam.ru/index.php?viewtopic=142685&st=60#entry5978018
    чему равно кол-во вариантов закончить руку? Неужели С(40,2)*C(38,2)*C(36,2)? Что-то уж больно большое число получается.
    При заполнении возможных завершений использовал 3фильтра. Сначала внизу комбинация не младше "2пары", потом в мидл не младше "пара", а потом итоговый "очки руки > 0". Получилось 1.8 миллиона(!) комбинаций, которые отобрались за 7 мин. Подсчёт вероятностей их собрать занял 15 секунд. Получается, надо оптимизировать поиск "готовых" рук.
    70/75
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • я, кажется, понял, о каких бинарных деревьях говорил c00l0ne. Алгоритм такой: сначала заполняем низ(например, фулхаус). Следующим "ходом" бахаем фанту наверх(любую, 2 одновременно собрать не получится). Вуаля, у нас уже отобраны 2 ветки. Фулхаус внизу и фанта И фулхаус внизу без фанты. (возможно, не надо считать путь до фулхаус без фанты. Он будет равен 1 - путь до фулхаус с фантой). Остаётся мидл. Для каждой из этих веток(с двумя законченными линиями) подсчёт один. Тут тоже всего 2 варианта: комбинация либо старше фантазии, либо младше. Тогда младшая идёт просто в очки(вместе с фулхаусом, но хоронит фулхаус и фантазию), а старшая приносит и свои очки, и фантазию, и фулхаус.
    Остаётся вопрос, а как быть, если для трёх комбинаций нужно 2 карты какого-то достоинства, а в колоде их осталось всего одна. Но это учтётся в поиске пути до завершения. Если "на бумаге" получилось 3 линии, которые требуют больше карт, чем есть в колоде, то путь до их завершения будет равен 0 и такой расклад "помножиться на ноль". Так думаю.
    71/75
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • Цитата (БиллиУбили @ 16.2.2019) *
    Неужели С(40,2)*C(38,2)*C(36,2)? Что-то уж больно большое число получается
    почему так? помойму на порядки больше
    24/27
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • Цитата (diklee @ 16.2.2019) *
    почему так? помойму на порядки больше
    Ну, вряд ли на порядки. Если учесть порядок выбора линий для заполнения, то надо умножить на факт(3). Если не важен порядок 2 карт, которые добавили к каждой линии, то надо разделить на 2^3 = 8. Откуда порядки?
    Лучше подскажи, как правильно построить дерево успешных завершений и как оптимально(с точки зрения быстродействия) его обходить
    72/75
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • Откуда вообще эти числа берутся с(40,2)?
    Твоя хитрая теория где достаются не 3 карты а две? 40 это что? Карты соперника веть видны, остается карт гораздо меньше
    25/27
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • diklee, ну вот же ссылка на пример https://forum.gipsyteam.ru/index.php?viewtopic=142685&st=60#entry5978018



    я считаю ЕВ руки БЕЗ учёта трёх пришедших карт( пока отправляем обратно в колоду). Итого мы знаем 17 из 52. Сколько всего вариантов готовой руки мы можем получить? приблизительно С(35,2)*С(33,2)*C(31,2) или я ошибаюсь? По описанным мною фильтрам получилось 1.8 млн тех рук, которые набрали хоть какие-то очки. Понятно, что часть из них не стоят проверки на ЕВ(дорогостоящая операция), так какая разница, какие именно 2 карты мы добавили в топ, если мы знаем, что там не образовалась пара(или даже фантазия).
    73/75
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • Брать по две карты, а не по три погрешность в еквити будет не меньше, чем если брать сразу шесть, как в методе который я описал выше. Но если бы мы всетаки модулировали такой покер, где берется только две карты, почему ты не перемножаешь на количество вариантов которыми мы можем их разложить? первый подьем 6 перестановок, остальные подьемы может меньше
    26/27
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • diklee, наверно тогда расскажу свою идею ещё раз.
    Для любой(законченной и незаконченной линии) введём понятие успешного завершения.
    Тогда те карты, которые понадобятся для завершения будут составлять "путь". Зная "путь" того или иного завершения можно посчитать вероятность. Она будет равна вероятности "собрать путь" за N подьёмов. И я предполагал, что эту вероятность трудно посчитать. Выяснилось, что она считается по элементарным формулам.
    Соответственно, и задача нахождения Вэлью руки сводится к нахождению всех "успешных завершений". Затем для них надо найти "путь", найти вероятность его собрать, и умножить на кол-во очков, которое даём "успешное завершение".
    Поэтому
    Цитата (diklee @ 16.2.2019) *
    Брать по две карты, а не по три погрешность в еквити будет не меньше, чем если брать сразу шесть
    путь за N подьёмов равен сумме N путей по 2 карты
    Цитата (diklee @ 16.2.2019) *
    Но если бы мы всетаки модулировали такой покер, где берется только две карты, почему ты не перемножаешь на количество вариантов которыми мы можем их разложить?
    А зачем мне (считать) число перестановок? А знаю все варианты, какими я могу собрать фантазию в топе. Если несколько из них симметричны(например + = + ), то я их НЕ разделяю, так как вероятность вытащить из колоды {,} равна вероятности вытащить {,}. Соответственно, что считать отдельные пути для перестановок, что считать один путь, не учитывая перестановки - общая вероятность получится такой же.
    74/75
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • всего завершающих комбинаций для в топе = С(40,2) = 780
    из них приносят очки 109
    осталось только 2 вопроса:
    1. Различать ли "пути" {,} и {,}?
    2. Что делать с подьёмом {,,}? Хотя вероятность получить его из колоды не меняется, но он приведёт к 3ём различным завершениям: {}, {} и {}, то есть как бы включает в себя 3 "пути". И если сокращать путь до 2 карт, то надо будет вводить ограничения на 3ью карту
    75/75
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
  • Я другие перестановки имел ваиду. То что полученую можно разложить 6ю разными способами.
    Что значит завершающие комбинации для в топе? От куда опять 40 взялось?
    27/27
    Ответить Цитировать
    0
    Это сообщение пока никто не оценил.
176 постов
1 6 7 8 9
3 человека читают эту тему (3 гостя):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.