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

Последний пост:26.11.2023
22
1 31 51 52 53 54 73 114
  • Цитата (БиллиУбили @ 2.2.2020)
    Точнее, для версии 1.0

    ЧТО БЫЛО ПРИ СТАЛИНЕ. ЧТО МЫ ПОТЕРЯЛИ.
    Что сделано на данный момент.
    52 карты представлены в виде ASCII-символов. От А до Z и от a до z. Так удачно совпало, что в латинском алфавите 26 букв.
    "Готовые" комбинации хранятся в виде дерева, с 52 ответвлениями на следующий уровень. Всего 5 уровней.
    Набор, как и комбинации - строки из 5(N) символов.
    Проблемы и решения.
    1. Входит ли данная карта в данную комбинацию?
    поиск по строке
    2. Найти все комбинации с данной картой(картами).
    Переходим из корня по ответвлениям, соответствующим данным картам. Когда данные карты кончаются, начинаем переходить по всем ответвлениям.
    3. Разложить фантазию из 14-17 карт
    Рекурсивно берём 5 карт, находим комбинацию, далее переходим к набору из 9-12 карт, снова ищем комбинацию и т.д.
    4. Разложить фантазию с учётом разложения стартера.
    Комбинация пунктов 2-3. Берём карты из стартера, которые мы положили в нижний бокс и ищем комбинации, в которые они входят. Далее переходим к среднему боксу и повторяем поиск.
    Из троек комбинаций собираем фантазию.
    5. Найти разложение стартера (в процессе)
    Дополняем стартер до набора 14-17 карт, записываем разложение карт стартера (в виде 01221) и очки за фантазию.
    (тут пока без суммирования всех разложений, с любыми очками, не обязательно макс).
    Определяем топ-10 и повторяем разложение фантазии, путём И дополнения стартера до набора 14-17 карт, И последующим разложении фантазии с учётом определённых позиций(12200) карт стартера.

    ПОка всё. Задавайте ваши ответы. Вопросы "автор, ты - дурак? почему не используешь массив HR5?" будут отвечены в последнюю очередь.

    ЗЫ Приветствуются ваши комментарии, соображения, предложения и т.п.
    Как, по-вашему, лучше записывать комбинацию. Как сравнивать их на старшинство. Спокойно, аргументировано предложите своё решение...очень возможно, что я воплощу его в код.
    416/741
    Ответить Цитировать
    0
  • БиллиУбили,
    Цитата
    Вы меня простите, но человек НЕ понимает, что пишет. Нет никакого сжатия до разумного размера!
    Многомерный массив сжимается всего лишь ровно в 5! = 120 раз, за счёт того что он ВРУЧНУЮ трактует комбинации, одинаковые до перестановки, как одну.

    О как! Ты наконец понял как устроен массив, что делаешь такие категорические утверждения? Я не поленился и посмотрел во сколько раз сжимается массив. Размер финального файла HR5 - 1 428 032 байт (4 байта на каждый элемент массива), несжатый размер массива - 52^5*4 - более в 1000 раз больше. За счет чего получается такое сильное сжатие я тоже несколько раз писал, но тебе это не интересно, ты не читаешь чужие посты. На самом деле нет принципиальной разницы в 120 раз или в 1000 раз сжимается размер массива в современных реалиях. Я просто реагирую на твое категоричное заявление - если не разбираешься в вопросе, лучше промолчи.
    В конце концов, ты не понял посыл моего предыдущего поста. Я призывал других читателей не сбивать тебя с выбраного пути и не отвлекать тебя на эти массивы. Я без сарказма, хотел бы чтобы ты сделал свою версию и мы могли бы сравниться по быстродействию. Если у тебя окажется быстрее, то я приму это во внимание и улучшу свою версию, если нет, то тоже не беда - отрицательный результат, тоже результат. Всего навсего год потратили на ошибочную гипотезу...
    39/52
    Ответить Цитировать
    1
  • Цитата (БиллиУбили @ 2.2.2020)
    для версии 1.0


    Цитата
    ЗЫ Приветствуются ваши комментарии, соображения, предложения и т.п.
    Как, по-вашему, лучше записывать комбинацию. Как сравнивать их на старшинство. Спокойно, аргументировано предложите своё решение...очень возможно, что я воплощу его в код.


    а где скачать то ? лол
    люди тебе помогали помогали а в итоге фигу получили )
    так и будешь публиковать что там в версиях ....

    "ребята версия 10.0.0.0.0.0.1"
    1. моя программа построила корабль и улетела бороздить просторы космоса

    задавайте вопросы , буду отвечать ... буду воплощать все в код "
    сними корону уже
    287/882
    Ответить Цитировать
    0
  • Цитата (Galax @ 2.2.2020)
    более в 1000 раз больше.

    Дядь, ты лучше сотри этот пост, не позорься. Всего 5ти карточных комбинаций - 52*51*50*49*48 = 311кк с копейкам
    Всего УНИКАЛЬНЫХ комбинаций - С(52,5) = 2598960
    Значит, максимальное сжатие/свёртка/хуёртка может быть в 311/2,6 ~= в 120 раз.
    Больше сжать НЕЛЬЗЯ!
    Нет, вылезает Galax и на голубом глазу утверждает, что можно сжать более, чем в 1000 раз.
    Ну, я не знаю, как это комментировать
    417/741
    Ответить Цитировать
    -1
  • БиллиУбили, ну так он не просто вылезает а он абсолютно прав... массив для хранения тебе нужен будет 52^5 ... *4 байта ...
    для 52*51*50*49*48 комбинаций, тебе же важно еще порядок любой карт учесть...
    288/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 2.2.2020)
    а где скачать то ? лол

    а качать-то нечего. Надо пройти все 5 пунктов от начала до конца. Даже нагрузить дерево - нетривиальная задача.
    Поэтому я решаю (эти) задачи одна за другой. Чтобы не получилось, как год назад. Вроде алгоритмы и работают...только 7 часов ждать надо.

    Цитата (c00l0ne @ 2.2.2020)
    так и будешь публиковать что там в версиях ....

    я написал, что сделано в версии 1.0
    Если будут изменения/улучшения - буду вносить в список. Не получится изменения - откачусь к предыдущей версии. У читателей/подписчиков есть возможность вносить свои предложения. Не хочешь/не можешь - что ж, насильно мил не будешь.
    418/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 2.2.2020)
    У читателей/подписчиков есть возможность вносить свои предложения


    а зачем , для какой цели? читателям вносить свои предложения?
    289/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 2.2.2020)
    БиллиУбили, ну так он не просто вылезает а он абсолютно прав

    я не знаю, в чём он прав. ну, 52^5 комбинаций...по 4 байта...по 44
    как можно сжать его более, чем до С(52,5) комбинаций???
    Хочешь выкинуть уникальные?
    Вроде сам начал писать правильные вещи...улица, дом, квартира, ИВАНОВУ...
    а можно наоборот: квартира, дом, улица, ИВАНОВУ...
    и вот уже сам забыл, в чём почти разобрался
    419/741
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 2.2.2020)
    а зачем , для какой цели? читателям вносить свои предложения?

    потому что "Каждый мнит себя стратегом, видя бой со стороны"(с)
    вот делает что-то человек, а
    у тебя в голове крутится мыслЯ "да он же не знает про массив HR5"
    @
    вот если бы я программировал, точно бы его использовал
    @
    ладно, подскажу ему, пусть ОН ТОЖЕ ИСПОЛЬЗУЕТ, пусть он попрограммирует
    420/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 2.2.2020)
    52 карты представлены в виде ASCII-символов


    вот это уже вызывает неодобрение ...
    почему не цифры ?
    Цитата (БиллиУбили @ 2.2.2020)
    поиск по строке


    ты представляешь что такое поиск по строке ? что это за объем работы для компьютера ?
    Цитата (БиллиУбили @ 2.2.2020)
    2. Найти все комбинации с данной картой(картами).
    Переходим из корня по ответвлениям, соответствующим данным картам. Когда данные карты кончаются, начинаем переходить по всем ответвлениям.


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

    Цитата (БиллиУбили @ 2.2.2020)
    Разложить фантазию из 14-17 карт
    Рекурсивно берём 5 карт, находим комбинацию, далее переходим к набору из 9-12 карт, снова ищем комбинацию и т.д.


    все это делается рекурсивно простым алгоритмом ... зачем бегать по дереву... упрощать код , но гонять комп лишний раз ...
    290/882
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 2.2.2020)
    4. Разложить фантазию с учётом разложения стартера.
    Комбинация пунктов 2-3. Берём карты из стартера, которые мы положили в нижний бокс и ищем комбинации, в которые они входят. Далее переходим к среднему боксу и повторяем поиск.
    Из троек комбинаций собираем фантазию.
    5. Найти разложение стартера (в процессе)
    Дополняем стартер до набора 14-17 карт, записываем разложение карт стартера (в виде 01221) и очки за фантазию.
    (тут пока без суммирования всех разложений, с любыми очками, не обязательно макс).
    Определяем топ-10 и повторяем разложение фантазии, путём И дополнения стартера до набора 14-17 карт, И последующим разложении фантазии с учётом определённых позиций(12200) карт стартера.


    про этот пункт отдельно поговорим ...
    разложить фанту с учетом стартера , что блеать ?
    видимо 5 карт выкладываются и ты ищещь все комбы
    но п5 то как заработает ? найдем мы все комбы , нам нужно вероятности посчитать , вероятности скупа и т.д. и т.п. .... чтобы посчитать матожидание ....
    291/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 2.2.2020)
    почему не цифры ?

    ну, назови мне причины перейти на цифрЫ
    есть 52 карты - 52 сущности. Какая разница, как я буду их различать: числа от 0 до 52...буквы латинского алфавита...
    китайские иегроглифы...
    продолжи свою мысль на пару ходов вперёд
    Цитата (c00l0ne @ 2.2.2020)
    ты представляешь что такое поиск по строке ? что это за объем работы для компьютера ?

    представляю. Пока проще задачу "вхождение карты в комбинацию" решить не могу.

    Цитата (c00l0ne @ 2.2.2020)
    обход дерева достаточно затратная задача, не проще написать линейный алгоритм ...
    из пары мы можем сделать допустим карэ или фулл и т.д.

    Я рассматриваю комбинации как строго 5карточные. В этом плане у меня нет понятия "пара" + "пара" = "2 пары".
    Объясни возможные плюсы твоего подхода. Не абстрактные, а чисто конкретные ))
    Цитата (c00l0ne @ 2.2.2020)
    все это делается рекурсивно простым алгоритмом ... зачем бегать по дереву...

    не понял, в чём твое предложение? Мы отложили 5 карт из набора. Какая разница, как определять, какая комбинация у нас получилась: обращением в "волшебный" массив или обходом(всего 5 прыжков) дерева?
    421/741
    Ответить Цитировать
    0
  • БиллиУбили, ой все по новой , я же объяснял как рекурсионный алгоритм работает , найти макс комбу с оставшихся найти макс комбу в середину , из остатков найти макс кому вверх ... зафиксировать фантазию1, опять для верха поискать менее сильную комбинацию (что кстати не логично.... можно сразу перейти к середине ) ... там найти менее сильную комбинацию ... но чтобы верх мог стать более сильным ... и так крутить до выходных условий ... работа изишная ... твой же алгоритм "тупой" начинает топором рубить себе дорогу ... перебирать перебирать ... по дереву н сот раз гонять одно и то же ....

    Цитата (БиллиУбили @ 2.2.2020)
    есть 52 карты - 52 сущности. Какая разница, как я буду их различать: числа от 0 до 52...буквы латинского алфавита...
    китайские иегроглифы...
    продолжи свою мысль на пару ходов вперёд


    разница существенно, можно выполнять операции бинарные ) на производительность повлияет ...
    292/882
    Ответить Цитировать
    0
  • БиллиУбили,
    Цитата
    я не знаю, в чём он прав. ну, 52^5 комбинаций...по 4 байта...по 44
    как можно сжать его более, чем до С(52,5) комбинаций???
    Хочешь выкинуть уникальные?

    Ты действительно хочешь знать как? Тогда почитай этот пост до конца.
    40/52
    Ответить Цитировать
    1
  • Цитата (c00l0ne @ 2.2.2020)
    видимо 5 карт выкладываются и ты ищещь все комбы
    но п5 то как заработает ?

    ну, рассмотрим, например, стартер КК677
    добавляем к нему, скажем, 10 карт. Строим фантазию, получаем очки
    и так 100к прогонов.
    В результате, опять же предположим, что 2 разложения 776/КК/-- и 77КК/6/-
    набрали приблизительно поровну. А остальные, навроде 7К/7К/6 глубоко соснули и отвалились.
    Теперь мы берём эти 2 разложения и строим фантазию уже для них.
    то есть, добавляем 10карт и делаем 100к прогонов.
    В результате кто-то из этой пары вырвется в лидеры.
    То есть мы тупо увеличим точность. Но не для всех вариантов разложения, а только для лидеров на "первом" прогоне.
    422/741
    Ответить Цитировать
    0
  • Цитата (Galax @ 2.2.2020)
    Ты действительно хочешь знать как? Тогда почитай этот пост до конца

    Пост прекрасный. Читал его более двух раз. Вот только сократить кол-во комбинаций менее кол-ва уникальных у тебя не получится. Иначе возникнет коллизия: я подам на вход комбинацию
    , а у тебя в массиве-то её и нет(как нет и её перестановок и т.п.).
    Вот смеху-то будет...
    423/741
    Ответить Цитировать
    -1
  • Цитата (БиллиУбили @ 2.2.2020)
    Пост прекрасный. Читал его более двух раз. Вот только сократить кол-во комбинаций менее кол-ва уникальных у тебя не получится. Иначе возникнет коллизия: я подам на вход комбинацию
    , а у тебя в массиве-то её и нет(как нет и её перестановок и т.п.).
    Вот смеху-то будет...

    уникальных комбинаций будет :
    13пар * 12*11*10 кикеров
    13*12двупар * 11 кикеров
    и т.д.
    293/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 2.2.2020)
    перебирать перебирать ... по дереву н сот раз гонять одно и то же ....

    плюс моего алгоритма - он не ошибается. В том смысле, что он перебирает ВСЕ комбинации. В отличии от твоего, где ты делаешь "ручные" шаги: вниз кладём макс. комбинацию...ой, а она не самая сильная...ой, а существует вторая такая же по силе...ОЙ, МЫ НЕ ВСЕ КОМБИНАЦИИ ОБОШЛИ
    если нет большой разницы по производительности - не вижу смысла городить огород
    424/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 2.2.2020)
    плюс моего алгоритма - он не ошибается. В том смысле, что он перебирает ВСЕ комбинации. В отличии от твоего, где ты делаешь "ручные" шаги: вниз кладём макс. комбинацию...ой, а она не самая сильная...ой, а существует вторая такая же по силе...ОЙ, МЫ НЕ ВСЕ КОМБИНАЦИИ ОБОШЛИ
    если нет большой разницы по производительности - не вижу смысла городить огород


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

    приведи конкретный пример использования бинарной операции. Кроме сравнения комбинаций. Ну, можно их записывать цифрами. Ну я и так буду побитово сравнивать...не вижу тут выигрыша: что я сравню "а" < "c", что 1 < 3.
    не вижу гигантского скачка
    425/741
    Ответить Цитировать
    0
2261 пост
1 31 51 52 53 54 73 114
1 человек читает эту тему (1 гость):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.