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

Последний пост:26.11.2023
22
1 23 43 44 45 46 65 114
  • Цитата
    шта? а в вар1 мы откуда комбинации брали? не из 14-17 карт?


    вариант 1 расставляются карты и детектятся комбы после этого , как у джака , полный перебор всех перестановок карт , с оптимизацией
    вариант 2 сначала детектятся все комбы потом они расставляются по старшенству и считается максимум ... перестановкой всех комб делается ...
    235/882
    Ответить Цитировать
    1
  • Цитата (Jak @ 8.1.2020)
    ну наверно 1,5сек=1500мс/10000фант=0,15мс.

    только что проверил для 14, 15, 16, 17 карт пишет или 0,015с или 0,000с

    и кстати собираюсь перепроверить данные лексермана. мои старые данные по фантам с ним не совпадают.


    может я чего то недопонимаю ))) но банально цикл на 1 млн с десятком умножений делается в 1 поток 10 мс ...
    PtYaA5ieTZabiuxLgw2W-A.png

    если стопвоч не врет
    а у тебя 1 фантазия за 150 наносекунд разбирается ...
    очевидно никакого полного перебора ты не делаешь ...
    236/882
    Ответить Цитировать
    1
  • Цитата (c00l0ne @ 8.1.2020)
    расставляются карты и детектятся комбы после этого , как у джака , полный перебор всех перестановок карт , с оптимизацией

    эээ? то есть 5 карт сразу кладём вниз, 5 сразу в мидл и т.д.? Забавный подход.
    Цитата (c00l0ne @ 8.1.2020)
    сначала детектятся все комбы потом они расставляются по старшенству и считается максимум ... перестановкой всех комб делается ...

    я же тебе написал. Все перестановки не нужны. Зачем тебе, например переставлять Ахай с мидл в топ и наоборот? Кол-во очков не возрастёт же
    333/741
    Ответить Цитировать
    1
  • БиллиУбили, а ты знаешь что это А ххай ? а может это даст пару тузов , ты вангуешь?
    само собой всех значимых комб , причем тут вообще а хай бред какой то
    Цитата (БиллиУбили @ 8.1.2020)
    эээ? то есть 5 карт сразу кладём вниз, 5 сразу в мидл и т.д.? Забавный подход


    у джака таким подходом 1 млн раздач за 2 минуты считает ...
    237/882
    Ответить Цитировать
    1
  • Цитата (c00l0ne @ 8.1.2020)
    а может это даст пару тузов , ты вангуешь?

    увася, мы раскладываем уже готовые комбинации. Как "А хай" может превратится в пару тузов? Значит, второго туза в 14-17 карт нет

    Цитата (c00l0ne @ 8.1.2020)
    1 млн с десятком умножений

    а зачем ты цикл с запросом в массив заменил циклом умножений? Это называется шулерство
    334/741
    Ответить Цитировать
    1
  • Цитата
    увася, мы раскладываем уже готовые комбинации. Как "А хай" может превратится в пару тузов? Значит, второго туза в 14-17 карт нет


    упетя , какой а хай что ты несешь ... ну переберем все комбы и найдем роялти ... срежем самые донные варианты ... это оптимизация
    работа тоже большая , детектить комбы ... их переставлять ...
    238/882
    Ответить Цитировать
    1
  • Цитата (c00l0ne @ 8.1.2020)
    упетя , какой а хай что ты несешь ... ну переберем все комбы и найдем роялти ... срежем самые донные варианты ... это оптимизация
    работа тоже большая , детектить комбы ... их переставлять ...

    несёшь только ты. Если ты не можешь ЗНАЧИМЫЕ(хотя бы старше "Ахай") комбы разложить по 3ём боксам - твои проблемы
    335/741
    Ответить Цитировать
    1
  • ой блин забейте насчет умножений массива, я протупил , не отключил дебаг ...
    это мгновенно выполняется без дебага ...
    sl1BmLkXRMeOgJmq2srAjw.png


    БиллиУбили, так ты делай так много тратишь времени на переписку ...
    239/882
    Ответить Цитировать
    1
  • мало того, я еще генерирую 1млн случайных 14карт-фантазий
    94/314
    Ответить Цитировать
    1
  • Цитата (Jak @ 8.1.2020)
    мало того, я еще генерирую 1млн случайных 14карт-фантазий


    Где взять выборку? Или как её сгенерировать для построении проги
    15/27
    Ответить Цитировать
    0
  • БиллиУбили,
    Цитата
    Не понятно только одно: зачем на этом ставить акцент? Более того, зачем за счёт этого самоутверждаться?

    Во-первых, я сагрился потому что ты десять раз спрашиваешь одно и то же - как лучше сделать то-то и то-то. После того, как Жак тебе расписал как считать фантазию, а Кулон потом скопипастил его текст и еще раз указал, как ее считать. Чем тебя этот алгоритм не устраивает? Почему ты все перекручиваешь с ног на голову? Даже если ты не хочешь использовать быстрый алгоритм определения покерной комбинации, то используй свой метод (в 1000 раз медленнее), но алгоритм перебора всех вариантов для одной фантазии может быть тем же, что использует Жак. Просто повтори его и сравни результаты. Может после этого ты поймешь, что работа со строками вместо целых чисел - это путь в никуда.
    Цитата
    Какие у тебя самого результаты? 7 часов обсчёта 2ух подьёмов?

    Во-вторых, ты не внимательно читаешь посты других авторов. Я считаю за 7 секунд полный перебор всех 27 вариантов, когда у нас 7 карт. И это результат пяти-летней давности, а сейчас есть идеи как его улучшить, но не факт, что я заставлю себя это сделать.
    34/52
    Ответить Цитировать
    1
  • Чтож, c00l0ne не зря отрабатывает свой хлеб. Благодаря нему появился очередной план построения рекурсии.
    Исходные размышления:
    1. В максимальной фантазии все комбинации получают максимум очков для своих боксов. По определению.
    2. Для каждого бокса кол-во очков за определённую комбинацию - функция строго неубывающая. То есть за флаш в мидл очков дают больше, чем за флаш внизу.
    Что же получается?
    Предположение:
    Если у нас не хватает комбинаций для построения королевской максимальной фантазии, максимальной будет та, где максимума достиг ранг комбинации на самом высоком боксе. Иными словами, положить ААА в топ, будет заведомо выгоднее(?), чем положить 2 рояля 2 фула: в мидл и вниз. 6 + 12 < 22
    Даже в самом критическом случае(тройка 222, разбиваем фул 33322) имеем 6+12 < 0+2+10+очки за фантазию
    Иными словами, алгоритм должен идти с максимума до Ахай в топе, потом с максимума до Ахай в мидл, и, наконец, с максимума до Ахай внизу.
    Такой подход не отрицает возможности рекурсии по полной таблице очков за комбинацию в различных боксах, но немного его упрощает(оптимизирует).
    Положили ААА в топ? Удержали? Да. Выходим из рекурсии первого уровня(все разложения без ААА в топе будут заведомо меньше по очкам).
    Удержали? Нет. Кладём АА. Пытаемся удержать = переходим на второй уровень рекурсии.
    Попытаемся положить максимум в средний бокс(роял- СФ - карэ - фул и т.д.) и его удержать.
    Удержали? Нет. Продолжаем бороться за АА в топе, но уже с 2пары в мидл.
    Удержали ААА в топе и 2 пары в мидл? Да. Пытаемся побороться за максимум в последнем, нижнем боксе.

    Изложил немного коряво, но суть, думаю, ясна. Что скажите?
    336/741
    Ответить Цитировать
    1
  • Цитата (БиллиУбили @ 8.1.2020)
    отрабатывает свой хлеб


    манера общения -100 называется ) как появится плюсовый рейтинг обязательно -100 тебе поставлю за такие манеры
    240/882
    Ответить Цитировать
    1
  • Цитата (Galax @ 8.1.2020)
    Чем тебя этот алгоритм не устраивает? Почему ты все перекручиваешь с ног на голову?

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

    Цитата (Galax @ 8.1.2020)
    Просто повтори его и сравни результаты. Может после этого ты поймешь, что работа со строками вместо целых чисел - это путь в никуда.

    Не знаю, откуда такая уверенность, что работа со строками в 1000 раз медленнее. Я и повторил алгоритм Jak, когда понял, что его алгоритм - самый быстрый. Ты уверен, что его алгоритм фантазии - самый быстрый? Предпочитаю сначала попробовать свой. Ведь в раскладке фантазии он не ссылается на какой-то волшебный массив. У него обычная оптимизация перебора.

    Цитата (Galax @ 8.1.2020)
    И это результат пяти-летней давности, а сейчас есть идеи как его улучшить, но не факт, что я заставлю себя это сделать.

    Хороший результат...плохой...какая разница? Лучше накидывай свои идейки и предложения. Годные возьмут на вооружение. За негодные тебя отругают ))
    Так что меньше выяснений отношений, больше конструктива.
    Такое моё видение, ты сам волен решать, принимать или не принимать участие в проекте.
    337/741
    Ответить Цитировать
    1
  • Цитата (c00l0ne @ 8.1.2020)
    как появится плюсовый рейтинг обязательно -100 тебе поставлю за такие манеры

    Лол. Я быстрее наберу...ты снова покатился вниз (уже -350)
    338/741
    Ответить Цитировать
    2
  • Цитата
    эээ...разве не очевидно? Потому что стоит задача найти максимально быстрый алгоритм. А не просто алгоритм, который посчитает.

    Т.е. его алгоритм не устраивает, потому что ты сразу решил, что он не самый быстрый. А вот твой будет самый быстрый просто подскажите как его сделать.
    Цитата
    Ведь в раскладке фантазии он не ссылается на какой-то волшебный массив. У него обычная оптимизация перебора.

    Лол, ты снова все пропустил мимо ушей. А как по твоему узнается комбинация по всем трем рядам? Все тот же волшебный массив к которому пять раз обращаются. И это самая критическая по времени часть алгоритма. Если определение силы руки будет значительно медленнее (пусть не в 1000 раз, а в 100), то и весь алгоритм будет значительно медленнее. И тогда уже все равно, как "оптимально" ты перебираешь все варианты.
    Цитата
    Так что меньше выяснений отношений, больше конструктива.

    Вот тебе конструктив: уже два человека, которые что-то сделали по китайскому, тебе говорят, что это хороший алгоритм, просто сделай уже хоть что-нибудь. Пусть это будет версия номер один для сравнения. А уже потом пытайся ее оптимизировать и улучшить.
    35/52
    Ответить Цитировать
    2
  • Цитата (mahatmaGandi @ 8.1.2020)
    Где взять выборку? Или как её сгенерировать для построении проги

    простой оператор x:=random(52) в цикле. написать?
    Цитата (БиллиУбили @ 8.1.2020)
    1. В максимальной фантазии все комбинации получают максимум очков для своих боксов. По определению.

    Неверно. Я ж писал раньше. До 3-х улучшений суммы бонусов по линиям.
    Цитата (БиллиУбили @ 8.1.2020)
    максимальной будет та, где максимума достиг ранг комбинации на самом высоком боксе. Иными словами, положить ААА в топ, будет заведомо выгоднее(?), чем положить 2 рояля 2 фула: в мидл и вниз. 6 + 12 < 22

    опять ты бросаешься в крайности. про рояль я тебе написал, ты стал искать ААА. Их всего в 1млн 14фан получилось 2,5к, т.е.0,2%. 2 штуки из тысячи!
    нахера ты их ищешь?
    сто раз писал - я не собираю ничего, не ищу специально какую-то комбу ... перебираю все варианты и отсекаю лишние/тупиковые ветви. вот положили мы в них пятерку, посмотрели бонусы за нее, там пара 5-рок, бонусов ноль, можем мы что-то собрать с таким низом? нет. отсекаем. вот как только стал так отсекать снизу, сразу скорость в Х раз поднялась. пусть у тебя в низ можно положить всего С(14,5)=2002 штуки. вот таких мелких там больше половины, их сразу отсекаем и не смотрим.
    Цитата (БиллиУбили @ 8.1.2020)
    эээ...разве не очевидно? Потому что стоит задача найти максимально быстрый алгоритм. А не просто алгоритм, который посчитает.

    еще одно заблуждение.
    сделай хоть какой-то вариант, пусть самый медленный, пусть он просто что-то выдаст. а потом будешь его улучшать.

    Задача: выкопать яму 100м3.
    Кто-то копает деревянными лопатами за неделю, кто-то мелким трактором за сутки.
    Ты сидишь и строишь Катерпиллер чтобы выкопать яму за 10 минут, а лучше вообще за 3 гребка. Идея хорошая, но вот собрал ты ковш, а все остальное не может с ним работать, потому что для такого ковша надо движок сильный (а таких еще нет, значит надо сделать), шасси слабовато (нет таких еще металлов) и т.д. А время идет ... И в итоге другие худо/бедно, но копают, а ты только ходишь с идеями и чертежами. И не факт что вообще твой проект заработает. Знаешь сколько при Сталине строили монстров, которые не могли двигаться и летать?
    Цитата (Galax @ 8.1.2020)
    Я считаю за 7 секунд полный перебор всех 27 вариантов, когда у нас 7 карт

    Это супер результат. А вопрос (просто для ориентира), сколько карт в колоде осталось? Мы одни, или еще есть оппы? Если есть еще 2 оппа по 7 карт, то я только за 16 сек.

    Вот например: мы одни, оппы на фантазии. Нам раздали 5 карт, мы их как-то положили. Пришел первый подъем 3 карты. Две положили на линии, одну в сброс. Пришли еще 3 карты.
    Итого имеем: 7 карт у нас на линиях, (пусть самое частое 3+3+1, от этого тоже много зависит) + одна в сбросе + три новые карты. В колоде осталась 41 карта. Запускаем расклад 27 вариантов. За сколько? Просто для ориентира, чтобы было куда стремиться.

    У меня за 3,5 минуты. Пока. В один поток.
    Пробую распараллелить на потоки, ответ где-то сбивается, где-то данные замешиваются между потоками. У половины вариантов из 27 результат неверный. ХЗ, ищу ошибки. Но я это доделаю, в других моментах удалось запустить в несколько потоков.
    95/314
    Ответить Цитировать
    1
  • Дааа. Спасибо Galax, за идею про "тройки без мастей"+"флеш". Посчитал задачку Билли (кот. ты считал), там эффект ох..тельный.
    Для каждой тройки от 7 до 9 карт (всего ~27 вариантов в общем случае) имеем: в колоде осталось 33 карты.
    при снижении с 9 до 11, всего троек С(33,3)=5456. Если отбросить все флеши (в тройках только номиналы и нет мастей) получаем всего 435 разных троек. Выигрыш по скорости в 12 раз!!! Сделаем!!
    А если добавить еще флеши - то добавится всего 21 тройка с флешами.

    Galax -
    96/314
    Ответить Цитировать
    1
  • Цитата (Jak @ 9.1.2020)
    Неверно. Я ж писал раньше. До 3-х улучшений суммы бонусов по линиям.

    Что значит неверно? Я писал про максимальную фанту вообще. Из 52 карт. Если мы может положить любую комбинацию в любой бокс, то положив макс.(по очкам) комбинации в каждый(!) бокс мы и получим макс. очки.
    Вот тут и вылезает противоречие, что ААА в топе сожрёт 3 рояля и останется один.
    Но неутомимый c00l0ne и тут выкрутился, положив 999 в топ. Собственно говоря, он и навёл меня на мои размышления.

    Цитата (Jak @ 8.1.2020)
    специально проверял это, у меня на случайной фанте кладу макс в низ и т.д. до верха по максимуму, потом пробую посмотреть в низ по-младше и собираю лучший вариант. и таких вариантов бывает 3!!! 3!!! КАРЛ!!

    Никак не могу понять, сорри. Что за варианты? Почему именно 3?(а не 2 или 6 ).
    То есть, ты кладёшь максимум вниз. Например, карэ...10 очков...потом кладёшь максимум в мидл. Ну, пусть стрит. Итого 10+4. В топе у тебя уже ничего не получается, предположим. Итого 14
    И ты утверждаешь, что заменив карэ на стрит, флаш или фул ( 3 варианта), ты в итоге соберёшь больше очков?
    Каким образом, не мог бы показать на примере каре 9999. Вот, мы его разбили и положили вниз не карэ, а фул. У нас освободилась 9..куда мы можем её положить в мидл и топе, чтобы набрать экстра 5 очков(4 очка мы проиграли на "разбиение" карэ)
    И ещё. Ты пишешь, что "угадать не возможно". Потом "таких вариантов бывает 3!!!", именно "бывает", а не "будет". Так будет или не будет? Или ты не забиваешь себе голову и ищешь все варианты: и когда внизу макс из доступных комбинаций и когда нет?
    339/741
    Ответить Цитировать
    1
  • Цитата (Jak @ 9.1.2020)
    вот положили мы в них пятерку, посмотрели бонусы за нее, там пара 5-рок, бонусов ноль

    ох уж это заколдованное число "5"
    ...
    Ты здесь, наверно, описался. Ложим вниЗ...да даже если и в мидл.
    Теперь главный вопрос:
    как определить бонусы(очки) за "пару пятёрок"? Смотрим в отдельной таблице комбинация/бокс/очки?
    340/741
    Ответить Цитировать
    1
1 23 43 44 45 46 65 114
1 человек читает эту тему (1 гость):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.