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

Последний пост:26.11.2023
22
1 52 72 73 74 75 94 114
  • Цитата (БиллиУбили @ 29.4.2020)
    Имеется задача: добыть из дерева комбинации старше флаша.
    Jak утверждает, что достаточно перебрать все комбинации ,которые можно собрать из 17 карт, и в процессе перебора найти(собрать) нужные.
    Я же утверждаю, что у меня это займёт O(log N) операций, где N - число комбинаций.

    Ты сразу пруфы пиши, где я такое говорил. Я уже в курсе какие ты делаешь выводы из моих сообщений.
    Есть массив, в котором все комбы отсортированы по силе. Есть маркеры, с 0 - рояли, с Х - фуллхаусы, с У - флеши (и сколько их). Чтобы найти все комбы старше флеша - проверить все комбы с 0 до У-1 (конец фуллов) на наличие совпадений или наоборот, смотря что надо. Это решение просто в лоб, обычно даже еще быстрей.
    Ты уже, наверно, догадался, что у меня не один массив?

    В 100500й раз пишу. При любом расчете, ни в одной п/программе у меня нет такого понятия: "Ищем флеш, Ищем фулл". Никогда не проверяю, есть ли тут рояль? А каре?
    Я не ищу конкретные комбинации! Есть максимально старшая и слабей. Все. Пох фулл это или стрит. После того, как нашел комбу, смотрю сколько она дает бонусов и уже тут делаю выводы, считать дальше или нет.
    144/314
    Ответить Цитировать
    0
  • Цитата (Jak @ 30.4.2020)
    Ты уже, наверно, догадался, что у меня не один массив?

    Догадался, как не догадаться..
    Цитата (Jak @ 30.4.2020)
    все комбы с 0 до У-1 (конец фуллов) на наличие совпадений

    То есть массив (всевозможных) флашей и ты среди них ищешь совпадения по 5картам, которые ты положил в бокс? Это очень ресурснозатратно, как мне кажется

    Цитата (Jak @ 30.4.2020)
    После того, как нашел комбу, смотрю сколько она дает бонусов и уже тут делаю выводы, считать дальше или нет.

    То есть, идёт проверка "комбинация старше той, что лежит внизу?" и всё?
    Ещё раз хотел бы уточнить. Ты делаешь полный перебор С(17,5)C(12,5)C(7,3) ~ 170КК, за исключением тех случаев, когда рука получается мёртвой? И дальше перебор не имеет смысла.
    Тогда ты сам себе противоречишь. Зачем тебе разные массивы?? Нашёл ранг комбинации и поехал дальше...Время поиска НЕ зависит от того, в каком из массивов ты ищешь комбинацию.
    Нет никакой разницы, получить ограничение "не старше флаша" по нижней линии, искать 5 карт в массивах "2 пары, стрит, трипс и т.д." или найти комбинацию в большом массиве и сравнить её ранг с флашом. В таком случае отдельные массивы даже зло, так как можно запутаться.

    Цитата (Jak @ 30.4.2020)
    Я уже в курсе какие ты делаешь выводы из моих сообщений.

    Ну, извини. 3 страницы назад ты писал, что у тебя полный перебор. Потом
    Цитата (Jak @ 23.4.2020)
    При кол-ве карт>13, после разложения придется обязательно проверять на наличие ВСЕХ карт стартера! А это время!

    То есть, в одном месте ты пишешь, что проверять комбинацию на совпадение карт стартера долго, а потом тут же проверяешь на наличие совпадений или наоборот, смотря что надо. Я что-то не понимаю или ты что-то не договариваешь.
    633/741
    Ответить Цитировать
    0
  • Провёл эксперимент, что быстрее: удалять "ненужные" комбинации из полного отсортированного списка комбинаций ИЛИ строить новый отсортированный список.
    строить новый оказалось чуть-чуть быстрее, так как средний размер списка всегда меньше


    Если я правильно понял(прошу поправить) для отсортированного списка все операции(поиск, вставка, удаление) по сложности ~ log(N).
    Поэтому даже потратив NlogN на сортировку, я в результате потрачу меньше времени на нахождение "живых" рук.
    634/741
    Ответить Цитировать
    0
  • Таки удалось удалять карты из дерева, может теперь полегче пойдёт.
    Где-то начиная с 3000+ элементов О(logN) начинает обгонять обычный(неотсортированный) массив.
    Начнём, как всегда, от простого к сложному.
    Попробую класть вниз комбинации от старшей к младшей. Ну, а средний и верхний боксы заполнять по-старому(через массивы).
    Может где-нибудь и удастся сократить полный перебор.
    635/741
    Ответить Цитировать
    0
  • Упорядочный список рулит. Данные предварительные, но что-то около 200ф/сек. Метод "спуск от максимума до обеда".
    Я пока кладу 5 карт в топ, но понятно, что 3 карты ничего не поменяют. Надо только согласовать старшинство комбинаций в 3ёх карточном и 5ти карточном деревьях.
    Удивлением для меня было быстрота сравнения 2ух комбинаций по 5 карт каждая.
    Получается, Jak ничего не выигрывает, кладя в бокс комбинации, которые заведомо не пересекаются.
    Но рано радоваться, надо ещё раз перепроверить
    636/741
    Ответить Цитировать
    0
  • А теперь обещанный анекдот про Кулона программиста
    Лето, жара... потный программист раскладывает фантазию.
    И вдруг появляется сказочная фея с волшебной палочкой.
    "Парень, а что это ты тут делаешь?"- спрашивает фея.
    "Что, не видишь? Трахаюсь" - зло отвечает программист.
    "Да? - удивляется фея, а хочешь по-настоящему?"
    "Конечно, хочу" - отвечает радостный программист, пуская слюни
    Фея взмахнула палочкой …
    и башня танка отлетает на 100 метров

    и программист получает следующее задание: разложить стартер
    637/741
    Ответить Цитировать
    0
  • БиллиУбили, противно читать ... не играю в Танки я

    отвечу тебе тем же
    про софт билли убилли

    - Что такое хард?
    - Это то, что можно от души швырнуть об стенку.
    - А что такое софт Билли Убилли?
    - Это то, что можно лишь обругать матом.

    Познать, что такое бесконечность можно, наверное, единственным способом: попытаться выбить всю пыль из ковра или обновлять тему Билли Убилли в ожидании готового софта..

    https://vse-shutochki.ru/anekdot/45148
    https://vse-shutochki.ru/anekdot/45148
    423/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 9.5.2020)
    не играю в Танки я

    простите, а где ты увидел игру в Танки?
    лишний раз убедился, что ты не читаешь сообщения.

    Касательно сроков. Да, замечания справедливые. 2 недели потерял на удаление "карт" из дерева, а в результате это не понадобилось. Но, вроде на отсортированных списках всё работает. Jak вышел из положения, введя отдельные деревья для каждого ранга(флаш, трипс и т.д.)...но пустые запросы от этого никуда не делись. Чтобы понять, что перед тобой не фулхаус - всё-равно надо сделать запрос в дерево фулхаусов(пусть даже оно и небольшое). Посмотрим, кто будет быстрее.
    638/741
    Ответить Цитировать
    0
  • Первые результаты разложения фантазии с помощью сортированных списков.
    произвольные 17 карт
    16 очков - 119 вариантов разложения
    14 - 24
    12 - 3150
    10 - 1308
    Совершенно очевидно, что функция кол-во вариантов(очки)
    1. Немонотонная
    2. Имеет совершенно непредсказуемый вид(поправьте, если это не так)
    Поэтому придётся предположить, что если есть хотя бы 1 вариант набрать максимальные очки - в зачёт должен пойти он один. Даже если (Очки-1) можно набрать в 1000 раз большим кол-вом вариантов. Такого свойство разложения в режиме "фантазия", бороться с ним бесполезно.
    639/741
    Ответить Цитировать
    0
  • Jak, ты выкладывал софтину , она ошибку выдавала ... поковырялся тут ради спортивного интереса в отладчике :
    у тебя HandRanks3.dat битый, проверь эти индексы :
    mpPXwtYQRBGNmcO4M0nQMQ.png

    лечится патчем этих полей
    грубо говоря когда А(38)А(51)К(50) софтина наверх пыталась поставить появлялась ошибка
    Сообщение отредактировал c00l0ne - 10.5.2020, 3:07
    424/882
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 9.5.2020)
    Совершенно очевидно, что функция кол-во вариантов(очки)
    1. Немонотонная
    2. Имеет совершенно непредсказуемый вид(поправьте, если это не так)


    сделал мое утро, Карл

    пс поправляем , это дискретная функция и искать корреляцию между кол-ом вариантов и очками фантазии , зачем тебе это ?
    Сообщение отредактировал c00l0ne - 10.5.2020, 3:22
    425/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 9.5.2020)
    зачем тебе это ?

    Не знаю, ты опять не дочитал до конца.
    Цитата (БиллиУбили @ 9.5.2020)
    Поэтому придётся предположить, что если есть хотя бы 1 вариант набрать максимальные очки - в зачёт должен пойти он один

    что там будет с очками меньше - нас интересовать не должно.
    640/741
    Ответить Цитировать
    0
  • БиллиУбили,
    Цитата
    что там будет с очками меньше - нас интересовать не должно.


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

    вот тебе пример два одинаковых максимума , но с совсем разным ЕВ в итоге
    426/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 9.5.2020)
    а что если этот вариант с меньшим кол-вом очков , это более правильный розыгрыш стартера ?

    это уже будет следующий этап, дай закончить этот(считать по красной линии на твоём графике).
    641/741
    Ответить Цитировать
    0
  • БиллиУбили, а что тебе не нравится, возьми HR3 HR5 и как Жак раскладывай фантазии... Это же 1-2 часа работы

    Уже интересно куда твой квест приведет тебя дальше

    Ладно я тут с# изучаю сделаю для тебя ... Вечером
    427/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 10.5.2020)
    как Жак раскладывай фантазии...

    зачем? 13 карт для фантазии - это не совсем приближении игры, в которой у меня есть возможность выкинуть "ненужные" карты.
    Но теоретически можно оставить выбор для кол-ва карт, пожалуйста. От 13 до 25 и выше
    Если на каком-то числе стартер будет раскладываться особенно хорошо - ради бога )
    642/741
    Ответить Цитировать
    0
  • -
    Сообщение отредактировал c00l0ne - 10.5.2020, 4:43
    428/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 10.5.2020)
    карт меньше используют

    лол. Ну, это наверно математики от бога...ИЛИ сервера не справляются (перегреваются) ))
    ЗЫ Что такое "rl"?
    643/741
    Ответить Цитировать
    0
  • -
    429/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 10.5.2020)
    а он правильно делал уменьшая кол-во карт

    ну мы же не знаем, почему он уменьшал кол-во карт? Тут могут быть временные затраты на разложение фантазии либо затраты на определение "попали карты стартера в итоговую руку или нет". Официальная версия такая: нет человека - нет проблемы если сброшенных карт нет - карты стартера туда не попадут
    644/741
    Ответить Цитировать
    0
1 52 72 73 74 75 94 114
1 человек читает эту тему (1 гость):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.