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

22
Статистика
Статистика
22
Статистика темы
  • Популярность
    Топ-4891
  • Постов
    2,261
  • Просмотров
    172,234
  • Подписок
    22
  • Карма автора
    -45
1 35 36 37 38 114
  • mahatmaGandi, Спасибо за ссылку, не придется самому все считать. Так что примем как аксиому - фантазия дает 9,78 куша. Можем везде в расчетах подставлять это значение.
    Ответить Цитировать
    30/52
    + 0
  • совсем забыл чекнуть :
    IhxW0yArQwGeK4TiaemlQw.png

    пока времени нет

    с НГ всех программоделов)
    Ответить Цитировать
    173/882
    + 0
  • Всем привет!
    Возвращаемся к программированию.
    Galax @ 29.12.2019
    Почти 11 часов расчетов

    Сорян, но это никуда не годится (( надо придумать что-нибудь побыстрее. Да, результаты совпали, но это не пригодно чисто с практической точки зрения.
    БиллиУбили @ 29.12.2019
    И у меня две альтернативы:

    Пока начну со второй альтернативы. Итак, у нас 13. Сделаем сразу 16, учитывая предыдущие обломы.
    Планирую из 16 карт выбрать 5, потом из 11 ещё 5, ну, и из оставшихся финальные 3. Итого С(16,5)C(11,5)C(6,3)=
    около 40кк(!) вариантов. Только на их формирование уйдут секунды. А ведь потом каждый ряд надо будет проверить на наличие комбинации, сравнить их по возрастанию и подсчитать общее кол-во очков.
    Может всё-таки сформировать дерево "готовых" фантазий и искать уже по нему?
    Тут другая проблема: префиксное дерево поддерживает запросы только из 5 карт...то есть, чтобы, например, "поймать" карэ придётся перебрать С(16,5) = 4368 вариантов.
    А если представить все карты как числа от 1 до 52, то потребуется всего 1 побитовое сравнение: включают ли 16 выбранных карт 9ки или нет. Неважно, на каких местах они располагаются.
    Надо подумать, как лучше.
    То есть, решили задачу определения комбинацию по 5 картам, не заглянув вперёд.
    Следующей задачей будет определение (лучшей) комбинации(-ий) из 13(14, 15, N) карт...
    Ответить Цитировать
    271/741
    + 0
  • БиллиУбили,
    YoT6AG9FQl22w2H_OaUCTQ.png

    БиллиУбили @ 2.1.2020
    Да, результаты совпали, но это не пригодно чисто с практической точки зрения.


    в качестве подсказчика или бота ?

    БиллиУбили @ 2.1.2020
    Планирую из 16 карт выбрать 5, потом из 11 ещё 5, ну, и из оставшихся финальные 3. Итого С(16,5)C(11,5)C(6,3)=
    около 40кк(!) вариантов.


    если мне не изменяет память то там
    1009008 вариантов раскладки фантазий и это далеко не уникальных случаев ... если отсортировать и каталогизировать то еще меньше ...
    zR9oMPDXQJWbKUalzWA6sg.png

    ты сразу на 16 карт зря закидываешь удочку ... разберись с 13 картами ...

    БиллиУбили @ 2.1.2020
    Может всё-таки сформировать дерево "готовых" фантазий и искать уже по нему?


    какой размер дерева получится ?)

    БиллиУбили @ 2.1.2020
    Надо подумать, как лучше.


    думать не надо , выше я уже описал самый быстрый алгоритм на эту тему ... с рекурсией который ...
    Сообщение отредактировал c00l0ne - 2.1.2020, 20:31
    Ответить Цитировать
    174/882
    + 0
  • c00l0ne @ 2.1.2020
    я уже описал самый быстрый алгоритм на эту тему

    Как там тебе писал Jak? метод МК не может давать точное решение по определению
    Jak @ 25.12.2019
    Это - аксиома! Это даже постулат!

    Так же не может быть самым быстром и алгоритм рекурсии. Безошибочным с точки зрения большого кол-ва циклов - может быть. Занимать меньше строчек кода - может быть. Но никак не самым быстрым ))
    Ну, ладно, попробую таки 13 карт. Буду скармливать по 5 карт и собирать продолжение фантазии из 8.
    Ответить Цитировать
    272/741
    + 1
  • БиллиУбили, МК я не использую )
    БиллиУбили, рекурсия не бывает быстрой или медленной , все от сложности алгоритма зависит

    вот тебе решение твоей задачи :


    0..52 переводим в 0...13
    ищем максимум ... в списке 0..13...
    расставляем флеши вниз и в середину (если возможно)
    ищем максимум ... сравниваем с первым ... бинго


    в таком упрощении сложность зависит от длины флеша
    а алгоритм который я описывал занимается не перебором карт а занимается перебором комбинаций и таких минусов не имеет ... (и не важно каким образом я буду перебирать комбинации(с помощью рекурсии или просто полным перебором)) ...
    пс дело в том какую работу мы заставляем выполнять компьютер ... работу какого уровня ... чем выше уровень задачи решается алгоритмом ... тем быстрее оно работает ... чем ниже тем дольше ... если вообще ничего не решается (наподобии МК и брутфорсов) то долго и упорно все это считается )
    Сообщение отредактировал c00l0ne - 2.1.2020, 21:15
    Ответить Цитировать
    175/882
    + 0
  • Просто сижу и думаю, к какой практической задаче можно подвести поиск (лучшей) комбинации в 13 картах...
    Если для 5 карт нашёлся поиск по словарю, то это уже бред какой-то...узнать, существует ли в строке из 13 символов определённые 5. Не, понятно, что побитовая маска посчитает...но хотелось бы узнать, как эту задачу решают по-человечески
    Ответить Цитировать
    273/741
    + 1
  • БиллиУбили @ 2.1.2020
    Просто сижу и думаю, к какой практической задаче можно подвести поиск (лучшей) комбинации в 13 картах...
    Если для 5 карт нашёлся поиск по словарю, то это уже бред какой-то...узнать, существует ли в строке из 13 символов определённые 5. Не, понятно, что побитовая маска посчитает...но хотелось бы узнать, как эту задачу решают по-человечески


    тебе надо детально писать что тебе не понятно , по-человечески я могу сказать что ничего не понятно "что тебе не понятно" ...


    Просто сижу и думаю, к какой практической задаче можно подвести поиск (лучшей) комбинации в 13 картах...

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


    Если для 5 карт нашёлся поиск по словарю, то это уже бред какой-то...узнать, существует ли в строке из 13 символов определённые 5.

    о каком словаре идет речь?


    Не, понятно, что побитовая маска посчитает...

    она все считает ) даже твои сбережения в банке)
    Ответить Цитировать
    176/882
    + 0
  • c00l0ne @ 2.1.2020
    тебе надо детально писать что тебе не понятно , по-человечески я могу сказать что ничего не понятно "что тебе не понятно" ...

    я же написал...практическое применение...найти слова в тексте...это задача случается в жизни. Какая жизненная задача сведётся к поиску наличию определённых букв(?) в тексте. Потому что те же 9ки, которые сформируют карэ, могут быть так хитро разбросаны в наборе из 13 карт, что хрен ты его обнаружишь, пока не переберёшь все С(13,4)
    Про алгоритмы поиска максимума рано писать, пока не выбран движок. Как и что мы будем искать и в каком пространстве. Это ты сократил его до 13 символов и поскакал. Тут покумекать надо.
    Ответить Цитировать
    274/741
    + 1
  • а бля понял что ты нихрена не понял ... "строка из 13 символов" ... что блеат ...
    епта гуманитарий слушай
    1...52 в 0..13 конвертация означает что у нас есть 16 карт обозначенных как
    51,40,13,1,2,26....., (16 карт ) и мы их просто переводим в номиналы
    A(13),K(12),6(6).... и т.д. 16 карт ... где (1 это двойка , 2 это тройка и т.д. ) или для удобства можно взять (2 двойка а 14 туз )
    а по этим номиналам максимум фантазии вычисляется на раз два три , алгоритмами используемыми джеком например ...
    Ответить Цитировать
    177/882
    + 0
  • c00l0ne @ 2.1.2020
    1...52 в 0..13 конвертация означает

    я это понял ещё в позапрошлом году. Я спрашиваю, какая есть практическая задача, которая сведётся к поиску 5 символов(хоть от 1 до 13, хоть от 1 до 52, хоть латинских букв, они же карты) в строке из 13 символов(в 13ти картах).
    Пока не могу сообразить...
    Ответить Цитировать
    275/741
    + 1
  • БиллиУбили @ 2.1.2020
    я это понял ещё в позапрошлом году. Я спрашиваю, какая есть практическая задача, которая сведётся к поиску 5 символов(хоть от 1 до 13, хоть от 1 до 52, хоть латинских букв, они же карты) в строке из 13 символов(в 13ти картах).
    Пока не могу сообразить...


    а это просто вопрос ) какая задача к поиску 5 символов сводится в строке 13 карт ...
    ну ищем AKQJT вот тебе стрит старший
    я хз ... завязывал бы ты со своими строками... бинарно все делать надо ...

    я глянул что Jak делал , он вообще просто оценивал фантазию ... он не делал разложение ...
    взял пятерки и на веса умножил ...

    вот так он делал , я хз что тебе не понятно :
    Запоминаем в рабочий массив/копию. Вниз положить 2002 варианта. Берем один вариант.
    Убираем из копии 5 выбранных карт. Осталось 9 карт.
    Из 9 карт берем 5 карт. Всего 126 вариантов (где ты насчитал 2000*364 ?????). Остальные идут вверх. *1.
    Итого вариантов 2002*126*1.
    Берем низ. 5 обращений для низа = ответ. Если меньше, чем пара - нахер его, следующий низ. Запомним его.
    Берем мид. 5 обращений для мида = ответ. Сравним с низом, если старше - нахер его, следующий. Запомним его.
    Сделал массив для 4 карт (был в загрузке с программой) в котором уже посчитаны все варианты для 4-х троек из топа. 4 обращения для топа = ответ. Сравним с мидом, если старше - нахер его. Запомним. Сравним со старым максимумом.



    просто перебрал все варианты поставить пятерки и верх , прогнал по массиву с(52,52,52,52,52) ...
    еще массив с4(52,52,52,52) для верха сделал ... вот и все ...

    школьник-олимпиадник за 1 час сделает
    очень умный школьник)
    Сообщение отредактировал c00l0ne - 2.1.2020, 21:56
    Ответить Цитировать
    178/882
    + 0
  • c00l0ne @ 2.1.2020
    он вообще просто оценивал фантазию ... он не делал разложение ...
    взял пятерки и на веса умножил ...

    Бля, у тебя опять какие-то веса и умножения...Что он по-твоему сделал, как не разложение?
    По-другому и сделать нельзя.
    Ну, можно сделать сразу маски для готовых фантазий и сравнивать за один запрос. Но для этого нужны все(возможные) фантазии, их где-то надо хранить...да и поиск по ним будет линейный
    Ответить Цитировать
    276/741
    + 1
  • c00l0ne @ 2.1.2020
    школьник-олимпиадник за 1 час сделает

    ты, что, прикалываешься? Школьник Любой сделает, но считать будет 11 часов. Вопрос не просто сделать, а максимально быстро.
    Ответить Цитировать
    277/741
    + 1
  • БиллиУбили, веса он брал когда считал фантазии ... вроде ... уникальных пятерок :
    ты вообще не читал чтоли сейчас кину

    KVvtP5PDQIaVUWzDlkV90A.png


    он считал статистику ... что тут не понятно , поэтому брал веса стартовых пятерок ... чтобы их не перебирать , а перебирал оставшиеся 9 карт ...

    раскладывание фантазии все же подразумевает более высокоуровневый алгоритм ... а этот алгоритм просто перебор полный и вычисление максимума ... в каком месте ты видишь что "алгоритм РАСКЛАДЫВАЕТ"?)
    Ответить Цитировать
    179/882
    + 0
  • БиллиУбили @ 2.1.2020
    Ну, можно сделать сразу маски для готовых фантазий и сравнивать за один запрос. Но для этого нужны все(возможные) фантазии, их где-то надо хранить...да и поиск по ним будет линейный


    чтобы это сделать необходимо научиться эффективно хранить ... фантазий много , как ты будешь хранить их ?
    банально это не возможно с 1 тб винтом)
    Ответить Цитировать
    180/882
    + 0
  • БиллиУбили @ 2.1.2020
    ты, что, прикалываешься? Школьник Любой сделает, но считать будет 11 часов. Вопрос не просто сделать, а максимально быстро.


    это будет работать очень быстро , там же не так много вариантов ... ну приемлимо
    Ответить Цитировать
    181/882
    + 0
  • c00l0ne @ 2.1.2020
    он считал статистику ... что тут не понятно , поэтому брал веса стартовых пятерок ... чтобы их не перебирать , а перебирал оставшиеся 9 карт ...

    зачем ты притащил пост 2014 года? Там вообще непонятно, что он считает. Кол-во очков за среднюю фантазию?
    Получил он 9.78? Уверен, что нет.
    c00l0ne @ 2.1.2020
    в каком месте ты видишь что "алгоритм РАСКЛАДЫВАЕТ"?)

    В таком, что он делает полный перебор, отбросив комбинацию младше "пара" внизу. Никакого более высокоуровневого алгоритма не существует, пока мы не начнём вилять жопой и сокращать кол-во карт с 52 до 13(+считать флаш отдельно)...или делать какие-либо упрощения по комбинациям. В общем случае нам даны 2.6кк пятёрок, каждой из которых присвоено значение от 1 до 9 (пара, 2 пары, трипс, и т.д.)
    В ещё более общем случае могут появиться комбинации - риблстрайк и т.п.
    Ответить Цитировать
    278/741
    + 1
  • c00l0ne @ 2.1.2020
    это будет работать очень быстро

    ты понимаешь разницу между быстродействием O(N), O(logN) и O(1)?
    Подставь N = 1кк и почувствуй разницу.
    Ответить Цитировать
    279/741
    + 1
  • БиллиУбили, ладно много про фанту ... черт с ней ... пойду займусь чем нибудь полезным )

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

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


    БиллиУбили @ 2.1.2020
    ты понимаешь разницу между быстродействием O(N), O(logN) и O(1)?
    Подставь N = 1кк и почувствуй разницу.


    ты видимо миллион баксов хочешь )
    8OiMLURvTSe8ZYTPkT_gxw.png

    какая есть сложность задачи , такая и останется ... мы можем только оптимизировать алгоритмы и доводить их до совершенства , для того чтобы "быстрее работало"
    Сообщение отредактировал c00l0ne - 2.1.2020, 22:26
    Ответить Цитировать
    182/882
    + 0
1 35 36 37 38 114
1 человек читает эту тему (1 гость):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.