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

Последний пост:26.11.2023
22
1 29 49 50 51 52 71 114
  • Цитата (c00l0ne @ 21.1.2020)
    БиллиУбили,
    стыдно должно быть

    особенности национальной школы программирования. Не ладно скроен, да крепко сшит
    393/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 21.1.2020)
    особенности национальной школы программирования. Не ладно скроен, да крепко сшит


    Посчитай уже что нибудь
    Стартер кк776 без позы ха
    277/882
    Ответить Цитировать
    1
  • c00l0ne, погоди чуток.
    Итак, напишу здесь, чтобы не забытьпериодически подглядывать.
    Проблема №5-1 разложение фантазии на 14-17 картах с учётом стартера
    Думаю двигаться так:
    а) собрать все возможные тройки комбинаций без пересечения
    б) проверять, что в итоговом разложении(в тройке, но на разных "местах") участвуют все(5) карты стартера
    в) записывать, в каких именно местах.
    Пока я заканчиваю пункт а), предлагаю подумать, как лучше хранить информацию о позициях карт стартера.
    На данный момент склоняюсь к варианту Jak: имеем стартер , на выходе
    11223, где цифра означает бокс, а порядок соответствует указанному порядку стартера.
    Какие будут предложения?
    394/741
    Ответить Цитировать
    0
  • Рекурсия-рекурсией...но она и кусается.
    Возьмём для примера набор
    Идея заключалась в том, чтобы найти уникальные комплекты по 3 комбинации из 5 карт без привязки к боксам. То есть, если мы цепляемся за фулхаус, запускаем следующую итерацию, удалив , то на следующей итерации мы, естественно, зацепим флаш. Но совершенно также мы, зацепившись за флаш, и, набирая комбинации из обедневшего набора, мы снова поймаем фулхаус. То есть, получим два НЕуникальных комплекта: фул + флаш и флаш + фул(они равны с точностью до перестановки боксов) Моя первоначальная идея заключалась идти слева направо и выкидывать все карты до первой(!) карты, участвующей в комбинации. Таким образом, казалось бы, зацепившись за флаш, мы уже не найдём фулхас. А, найдя фулхаус, наоборот, по-прежнему найдём и флаш. Но идея провалилась. Может так и сработало бы для 2 боксов, но на 3ёх это уже трудноосуществимо - набор, который передаётся на следующую итерацию, уже теряет всякую связь с первоначальным...и понять, до какой отметки его надо укорачивать достаточно сложно. Поэтому! Придётся идти карта за картой. Зацепившись за фулхаус, мы обнаружим флаш. А вот когда мы обнаружим флаш в усечённом наборе, фула нам уже не собрать( уже будут заиграны).
    В очередной раз получен горький урок: разбивайте задачу на как можно больше подзадач. Попытка сделать всё и сразу ни к чему хорошему не приводит.
    395/741
    Ответить Цитировать
    0
  • Сложно. Идея раскладывать 14-17 сразу по трём боксам провалилась. Поэтому делаем шаг назад: просто находим все уникальные комплекты "комбинаций"(5 карт). А если комплекты уникальные, то и размещение их по боксам будут уникальными: невозможно из разных комплектов получить одинаковую руку(размещение по боксам).
    В который раз приходится двигаться от просто к сложному...
    396/741
    Ответить Цитировать
    0
  • Так, ну это сделали. Из 7 одномастных карт получился 21 "уникальных" флашей.
    Что в точности равно
    С(5,7)

    Из 17 карт должно получится 6188 флашей. Не понимаю, о каких сотнях тысячах толкует c00l0ne.
    Переходим к проверке условия "в 15 карт должно попасть ровно 5 карт стартера".
    397/741
    Ответить Цитировать
    0
  • БиллиУбили, не удержался таки )))) Билли - ты уникальный человек. Уже почти год назад тебе Жак и Галакс на пальцах 10 раз показали как эту задачу решить даже через жопу ( имеется ввиду простой перебор 17 карт по трем боксам и их сравнение на выбор лучшей комбинации) за секунду , но ты все равно изобретаешь велосипед !
    (We Salute You) AC/DC - хоть и не о тебе поют, но полноту мысли передают точно
    13/14
    Ответить Цитировать
    0
  • Цитата (brdss @ 26.1.2020)
    показали как эту задачу решить даже через жопу за секунду

    Цитата
    за секунду

    Зачем мне что-либо показывать? ЯВсе и так знают, что можно 17 карт перебрать по боксам и сравнить боксы на старшинство. Это во-первых. Во-вторых, я благодарен Жак за то, что он последовательно отстаивал свою точку зрения: комбинацию можно определить за 5 запросов. Роль Galax тут не определена. Он пытался поддержать позицию Жака, но своими словами объяснить не смог. Да и ладно, он поучаствовал в дискуссии, за что ему отдельное спасибо.
    И потом, предположим, что некто считает за 1 сек. Почему бы мне не посчитать за 0.5 секунды? В этом что-то криминальное? Я планирую разложить стартер путём симуляции(разложением 1кк фантазий)...каждая секунда на счету.

    ЗЫ Песню не понял, сорян. Даже дослушать не смог, уж больно голосок противный.
    398/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 21.1.2020)
    б) проверять, что в итоговом разложении(в тройке, но на разных "местах") участвуют все(5) карты стартера

    Сделано. Кладу 5карт стартера в начало 14-17 карточного набора и первые 5 витков рекурсии даю запрет на пропуск. Таким образом, все комплекты гарантировано включают 5 карт стартера(потом начинаются колебания "линии партии").
    Думал и над другим способом: разложить 14-17 карт произвольно и проверять, чтобы в сбросе было 0 совпадений со стартером. Сейчас перехожу к фиксации позиций стартовых карт по боксам...непонятно, как их вообще "находить"...записывать уже говорил как: в виде 21200, где 0,1,2 - номер бокса, порядок равен порядку карт в стартере(например, ). Тогда идут вниз и т.д.
    399/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 26.1.2020)
    записывать уже говорил как: в виде 21200, где 0,1,2 - номер бокса, порядок равен порядку карт в стартере

    несёмся на всех порах
    1кк разложений фантазии, нахождение позиций карт стартера -
    5 сек

    даже не буду думать, много это или мало...хотя c00l0ne сказал бы, что я зря туда-сюда гоняю строки
    Теоретически, 2 операции: нахождение уникальных комбинаций И подсчёт стартовых карт, в них участвующих, можно совместить. Но не время сейчас
    Далее планирую в очередной раз применить методу Жака.
    Берём стартер(5 карт), добавляем к нему рандомные карты, получаем 14-17 карт итого и из них собираем уникальные фантазии. Ну, скажем 1кк штук. Подсчитываем те позиции стартовых карт, которые "набирают" больше всего очков...выделяем топ-10(может топ-50)...и прогоняем другие(см. прим) 1кк уже для них.
    Здесь, безусловно, я отталкиваюсь от финального результата. Вероятность собрать определённую руку =/= собрать определённую фантазию. Всё-таки карты могут лечь по подьёмам произвольно. Даже железных стальных яиц может не хватить, чтобы протащить замысел до конца.
    Прим. Возникла задача разложить фантазию при определённых стартерах на определённых позициях...ну, это должно быть полегче, чем просто разложить фантазию из 17 карт.
    400/741
    Ответить Цитировать
    0
  • Как разложить фантазию, если 5 карт уже фиксированы на 5 местах?
    Нет результата(от чего отталкиваться), нет и выбора. Делаю полный перебор: дополняю боксы до заполнения, считаю очки и сравниваю с текущим максимумом. Конечный максимум и будет результатом.
    Приступим!
    401/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 28.1.2020)
    Делаю полный перебор

    Ахаха. Как чувствовал. Одно(!) заполнение занимает секунды. Ведь если внизу нам надо, предположим, добавить 3 карты, то теперь вклинивается порядок их следования...добавляется порядок следования в среднем боксе, в топе...всё это перемножается(хотя по сути ничего не меняется)...ужос!!
    Как же я обычную фантазию раскладывал? Неужели в 1млн раз быстрее? Надо перепроверить.
    Ну, не в млн, а ~ 5!*5!*5! = 1.7кк
    Неужели рекурсия дала такой выигрыш?
    402/741
    Ответить Цитировать
    0
  • БиллиУбили, все это болтовня пока ты веса не выложишь ... фантазии в 17 карт и среднее роялти ...
    рекурсивный алгоритм самый быстрый ... быстрее только матричный ... для этого надо теразета байты оперативы)
    если ты не гений и не сможешь оптимизировать хранение )
    278/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 28.1.2020)
    все это болтовня пока ты веса не выложишь ...

    полностью с тобою согласен.
    Выигрыш по производительности в 1кк раз поверг меня в шок.
    Либо алгоритм рекурсии сразу на комбинациях работает не совсем точно...либо придётся отлавливать(искать) карты стартера в комбинациях и оставлять фантазии, соответствующие определённому разложению стартера. Например, если, попали вниз, то все собранные фантазии придётся проверять на наличие этих карт в нижнем боксе.
    Ну, или искать все комбинации, содержащие и только тогда класть их вниз при сборке фантазии.
    403/741
    Ответить Цитировать
    0
  • БиллиУбили, ну так раз 1 кк делаешь выкладывай веса , посмеемся или поудивляемся ...
    у тебя очень не последовательный мозг ... который накидывается ... и пытается до ядра земли тунель рыть ... в разных местах ... копать надо один тунель .. . и до конца и глубоко

    1) ты решил сделать фанту ...
    делай ... проверь что сделал ...
    проверка заключается в табличке с весами
    фанта роялти и скок раз выпала
    1 выпала н раз
    2 выпала p раз
    3 ....
    4 ....
    5 ....
    6 ....
    7 ....
    8 ....
    9
    10
    ...
    92(два рояля сет девяток )


    =====================
    итоговой суммой среднего можно посчитать ев фанты по роялти
    sum((royalty(i)/n(i))) = mofantasyroyalty
    279/882
    Ответить Цитировать
    0
  • c00l0ne, зачем считать "веса" для фантазии? У фантазии один результат - максимум очков.
    Если и считать "веса", то только для сбора руки с игры(подьём за подьёмом).
    Но рано это ещё делать. Я предполагаю, что разложение стартера симуляцией фантазий СОВПАДЁТ с разложением стартера симуляцией сбором рук(подьём за подьёмом).
    404/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 28.1.2020)
    c00l0ne, зачем считать "веса" для фантазии? У фантазии один результат - максимум очков.
    Если и считать "веса", то только для сбора руки с игры(подьём за подьёмом).
    Но рано это ещё делать. Я предполагаю, что разложение стартера симуляцией фантазий СОВПАДЁТ с разложением стартера симуляцией сбором рук(подьём за подьёмом).


    веса имеется ввиду из 1кк раздач сколько раздач имеет максроялти н очков ... по этой таблице легко понять правлильно или нет у тебя работает ... ты вообще не думаешь над моими сообщениями... рекомендую включать голову на максимум когда читаешь ...
    веса на мильон раздач считаются ... а не то что ты думаешь ...

    Цитата
    Я предполагаю, что разложение стартера симуляцией фантазий СОВПАДЁТ с разложением стартера симуляцией сбором рук(подьём за подьёмом).

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

    пс я уже подумываю самому себя забанить в этой теме ска Билли действительно кого нибудь Убили своим кодингом ...

    не хочу тебя расстраивать но нормальные проекты выглядят так :
    основной класс 1529 строчек +2к строк во вспомогательных модулях и классах
    KwAz0VFsRSuoNLkk78M9xg.png
    Сообщение отредактировал c00l0ne - 29.1.2020, 3:06
    280/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 28.1.2020)
    по этой таблице легко понять правлильно или нет у тебя работает ...

    а что, известна истинная таблица? ну, будет какая-то кривая...что она даст?
    Цитата (c00l0ne @ 28.1.2020)
    выше писал уже мильон раз ... но я смотрю у вас котелок совсем не варит...

    ты зациклился. Карты, которые нам придут, уже лежат на своих местах. Есть у нас противник или нет...или их двое...мы всё равно должны собрать максимум из пришедших 5+3+3+3+3 карт. За очень редким исключением, когда у нас 0 очков, и мы можем соскочить со скупа, положив А в топ(а у противника там Кхай). Прибавку это даст с гулькин хвост. Читай, что тебе пишут тоже.
    Я уже делаю предположение, что заранее знаю все карты, которые ко мне придут.
    Надо хоть это посчитать, прежде чем обсуждать дальнейшие усовершенствования.
    Сейчас проблема в том, что если внизу должны оказаться (например), то это ставит мой алгоритм в тупик: я не различаю , и т.д.
    Один раз комбинация "попала в бой" - всё. Её перестановки в дальнейших расчётах не участвуют...
    405/741
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 28.1.2020)
    не хочу тебя расстраивать но нормальные проекты выглядят так :
    основной класс 1529 строчек +2к строк во вспомогательных модулях и классах

    ну, этот нормальный проект посчитал разложение стартера ?
    Не хватало ещё кол-вом строчек мериться
    Сообщение отредактировал БиллиУбили - 29.1.2020, 3:28
    406/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 28.1.2020)
    а что, известна истинная таблица? ну, будет какая-то кривая...что она даст?


    само собой известна, я лично ее полным перебором считал ... 2 дня )

    Цитата
    этот нормальный проект посчитал разложение стартера

    лол ты слабенький троль ...
    сколько у тебя строчек , мне просто интересно за 1 год сколько строк ты написал ... ? если не секрет )

    9t-iMGycSyugfldnzj4vGw.png

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

    берем стартер возьмем без позиции в ха классический ананас :


    начинаем бредово перебирать варианты расстановки
    первый все вниз
    -
    -


    второй сдвигаем одну карту вверх
    -



    и т.д.

    к каждому варианту применяем оценочную функцию ...
    которая
    1. вычисляет все возможные окончания раздачи ...
    2. считает вероятность скупа и вероятность сходимости этой раздачи...
    3. вычисляет матожидание варианта и записывает его в массив допустим

    как только все варианты перебрали .... сравниваем между собой и выбираем максимальный или просто сортируем и выводим в порядке убывания ...

    в чем тут сложности , с оценочной функцией попопотеть а остальное банальная комбинаторика
    Сообщение отредактировал c00l0ne - 29.1.2020, 3:34
    281/882
    Ответить Цитировать
    0
1 29 49 50 51 52 71 114
1 человек читает эту тему (1 гость):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.