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

Последний пост:26.11.2023
22
1 20 40 41 42 43 62 114
  • Цитата (c00l0ne @ 8.1.2020)
    пс можешь не благодарить

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

    2All
    Под рекурсией я имел в виду следующее. Находим максимальное число в таблице: пусть это будет рояль за 30 в мидл. Можем положить(у нас есть рояль)? Кладём. Снова возвращаемся к рекурсии но у нас уже только 2 пустых боксах.
    Теперь из таблицы для 2ух боксов мы снова ищем макс очки - это рояль внизу. Можем положить(у нас есть второй рояль)? Кладём. Не можем положить? Не кладём и выходим из обоих рекурсий, так как класть что либо младше рояля вниз нельзя, рука будет мёртвой.

    Примечание. Здесь я использую тот факт, очки за руку = сумма очков за каждый бокс. соответственно, и максимальной сумма будет тогда, когда на каждой линии будет максим.очки для этой линии.
    Так что буду делать по данной схеме
    Единственно, что за фантазию надо давать "лишние" очки, кроме как 7 за QQ, 8 за КК
    ЗЫ У темы 30к+ просмотров. Всем спасибо!
    Сообщение отредактировал БиллиУбили - 8.1.2020, 16:21
    313/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 8.1.2020)
    Находим максимальное число в таблице: пусть это будет рояль за 30 в мидл. Можем положить(у нас рояль)? Кладём. Снова возвращаемся к рекурсии но у нас уже только 2 пустых боксах.
    Теперь из таблицы для 2ух боксов мы снова ищем макс очки - это рояль внизу. Можем положить(у нас есть второй рояль)? Кладём. Не можем положить? Не кладём и выходим из обоих рекурсий, так как класть что либо младше рояля вниз нельзя, рука будет мёртвой.


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

    я программирую с 6ого класса, первый компьютер у меня был "Поиск"
    GKT1lS22QvGmmDhPDlvM8g.png

    с процессором
    86QvY4-fQUCJLQ5YOB2CFg.png

    dRuLiaaVQmm0ifYQVqPtmQ.png
    218/882
    Ответить Цитировать
    0
  • Galax, я не спорю.
    Пусть
    я плохо программирую...
    Пусть
    у меня проблемы с логикой...
    всё так. Не понятно только одно: зачем на этом ставить акцент? Более того, зачем за счёт этого самоутверждаться?
    Какие у тебя самого результаты? 7 часов обсчёта 2ух подьёмов? Ну, я в мае 2019 повторил твой результат за меньшее время. Просто тогда решил, что это - путь в никуда. А сейчас задача получила второе дыхание. За счёт нового "движка".
    И обрела она его исключительно за счёт Jak-а, который твёрдо и чётко обьяснил, что можно определить комбинацию за 5 запросов. Ну, а если кто-то что-то сделал, то это можно повторить.
    Сейчас я повторяю его результат (60 фантазий за сек), но не потому что поставил себе задачу проще на порядок, а потому что нарабатываю функционал, который пригодится для решения основной задачи.
    Поэтому!
    Пиши! Участвуй! Дискутируй! Выкладывай свои результаты!
    Спасибо за участие ))
    314/741
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 8.1.2020)
    ты просто не хочешь разобраться в этом

    Лол...если бы тебя не было, тебя бы стоило придумать (повтор, но лучше и не скажешь)
    315/741
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 8.1.2020)
    если бы тебя не было, тебя бы стоило придумать


    это оскорбление такое ? или комплимент?) мне жаловаться или радоваться
    219/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 8.1.2020)
    я программирую с 6ого класса,

    Просто прими как факт, что ВСЕМ(людям) ПОХУЙ, за сколько лет ты НЕ научился программировать. Если тебя преследует боль и разочарование, что ты не стал трЪ-программистом... Ну, во-первых, это не каждому дано. Во-вторых, можешь сослаться на обстоятельства(не было времени, желания, возможностей и т.д.)
    Здесь не ветка нытиков-неудачников, ты перепутал
    316/741
    Ответить Цитировать
    0
  • БиллиУбили, ну это оскорбление , пожалуюсь ...
    220/882
    Ответить Цитировать
    -1
  • Цитата (БиллиУбили @ 8.1.2020)
    однозначно за рекурсию. Или однозначно против.

    рекурсия - красивее и писать быстрей, но работает медленней. линейно - дольше кодировать (писать много и муторно все расписывать, можно ошибок нечаянно наделать), но работать будет быстрей. еще самое важное: в начале за скоростью не гонись, сделай пусть медленно, но за то точно и без ошибок. потом будешь ускорять. если есть несколько вложенных циклов, самые важные внутренние, тут должно быть минимум операторов, нельзя делать никакой лишней ерунды. по максимуму постарайся в последнем внутреннем цикле убрать лишние операторы, тут каждая операция - супер время! все обращения к массивам постарайся сделать заранее.
    Цитата (БиллиУбили @ 8.1.2020)
    Находим максимальное число в таблице: пусть это будет рояль за 30 в мидл

    чё ты уперся в рояль и каре? а если макс это будет флеш? так и будешь перебирать все комбы до двух пар?
    в низу чаще всего бывает фулл или флеш. в мид соответственно флеш и стрит, 2 пары и пара. а ты сразу - допустим рояль в мид!!! ты его хрен дождешься в низ, а уж в мид вообще шансы стремятся к нулю.
    Цитата (БиллиУбили @ 8.1.2020)
    и максимальной сумма будет тогда, когда на каждой линии будет максим.очки для этой линии.

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

    Пять лет прошло с тех времен...
    Ради интереса посмотрел щас скорость расчета фанты в свете новых массивов и новых идей.
    Сделал цикл 10000 = 10к!! случайных фантазий.
    Для 17 карт - 90сек, 16 карт - 25сек, 15 карт - 6сек, 14 карт - 1,5сек (за 10к фантазий!!!) . Сам офигел. И это все в один поток. Правда немного доработал алгоритм.
    Т.е. для 16 карт - 400 фантазий в секунду. А для 14 - вообще
    80/314
    Ответить Цитировать
    0
  • Jak, а одну за сколько раскладывает? Даны конкретные 14 карт, за сколько мс
    221/882
    Ответить Цитировать
    0
  • ну наверно 1,5сек=1500мс/10000фант=0,15мс.

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

    и кстати собираюсь перепроверить данные лексермана. мои старые данные по фантам с ним не совпадают.
    81/314
    Ответить Цитировать
    0
  • Jak, респект. Вот это я называют "пост по делу", без всякой ерунды.
    Цитата (Jak @ 8.1.2020)
    чё ты уперся в рояль и каре? а если макс это будет флеш? так и будешь перебирать все комбы до двух пар?

    ну, если макс будет флаш, точнее, 8 очков за него в мидл, то туда я его и положу. Тут вопрос в том, как писать рекурсию. Пока я дойду до флаша, я же не буду каждую 1000 комбинаций проверять на роял, каре, фулхауз и т.д.
    Или буду? )) Надо пощупать массив комбинаций на входе...

    Цитата (Jak @ 8.1.2020)
    ты его хрен дождешься в низ, а уж в мид вообще шансы стремятся к нулю.

    Рекурсия очень быстро всё сжирает. Мы начнём с 72 очков макс...и очень быстро упадём до 25...а потом и до 18
    (очков макс = макс. очки из данных 15 карт)
    Цитата (Jak @ 8.1.2020)
    а вот это самая большая ошибка.

    тут согласен. Немного некорректно выразился. Я имел в виду, что класть QQ в топ и набирать 7 очков, мы начнём тогда, когда все расклады с большим кол-вом очков(например, 8 = 6 +2, фулл и трипс) себя не реализуют.
    Планирую использовать спуск вниз...

    Цитата (Jak @ 8.1.2020)
    Сделал цикл 10000 = 10к!! случайных фантазий.
    Для 17 карт - 90сек,

    То есть всё-таки 100 фанс за сек. Ну, ориентир понятен. Ты бы написал ещё, сколько примерно комбинаций "старше пары" получается на случайных картах. Чтобы я был готов к порядкам.

    Цитата (Jak @ 8.1.2020)
    мои старые данные по фантам с ним не совпадают.

    ты ещё проверь, почему у тебя максимумы на чётных очках. Должно быть наоборот, ведь QQ собрать проще всего.
    А за АА тоже дают нечётное кол-во(9).
    317/741
    Ответить Цитировать
    0
  • Цитата (Jak @ 8.1.2020)
    только что проверил для 14, 15, 16, 17 карт пишет или 0,015с или 0,000с

    Погоди, так разные цифры или нет? одинаковое время может быть только в том случае, если лишняя карта не дала ни одной "новой" комбинации. Вырожденный случай
    318/741
    Ответить Цитировать
    0
  • одинаковое время потому, что комп так мелко не считает. потому я и считал 10000 фант, чтобы узнать примерно сколько считается одна фанта.
    Цитата (БиллиУбили @ 8.1.2020)
    То есть всё-таки 100 фанс за сек. Ну, ориентир понятен

    ну тогда 60 фант было из 14 карт! а щас из 17 карт. разница понятна? из 17 карт получаем 6188*792*35=171'531'360 разных 13карт-фант (все конечно не надо перебирать), а в 14 картах всего 2002*126*4=1'009'008 разных фант. из 17 карт можно сделать 13карт-фант в 170 раз больше, потому и время 17карт-фант в 60 раз больше.
    82/314
    Ответить Цитировать
    0
  • Цитата (Jak @ 8.1.2020)
    из 17 карт можно сделать 13карт-фант в 170 раз больше

    да проще всё. 15 карт - это 15 фантазий из 14. И макс. очков будет макс по 15 фантазиям, не?
    319/741
    Ответить Цитировать
    0
  • ну да.
    17 карт - 17 фант из 16.
    16 карт - 16 фант из 15.
    15 карт - 15 фант из 14. И т.д. - любимая рекурсия
    Вывод 17 карт - 17*16*15 фант из 14.
    Вопрос: Во сколько раз расчет фанты из 17 карт медленней расчета фанты из 14 карт?
    Ответ:
    17*16*15=4080
    83/314
    Ответить Цитировать
    0
  • Цитата (Jak @ 8.1.2020)
    ну да.
    17 карт - 17 фант из 16.
    16 карт - 16 фант из 15.
    15 карт - 15 фант из 14. Вывод 17 карт - 17*16*15 фант из 14.
    Вопрос: Во сколько раз расчет фанты из 17 карт медленней расчета фанты из 14 карт?
    Ответ:
    17*16*15=4080

    а у тебя 60сек вс 1,5сек, всего в 40 раз. Значит, ты где-то сокращаешь перебор ))

    Прошу тебя, дай мне цифры по среднему кол-ву комбинаций на 17 картах. Мне надо от чего-то отталкиваться. Сколько там комб старше "А хай"? 100? 1000?
    320/741
    Ответить Цитировать
    0
  • Цитата (Jak @ 8.1.2020)
    ну наверно 1,5сек=1500мс/10000фант=0,15мс.

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

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


    лол откуда такие скорости ... это же фейк данные какие то ...
    нужен пруф ...
    222/882
    Ответить Цитировать
    0
  • Забирайте:
    Все про фанту 14 карт.
    1 млн случайных фант. А на сайте лексермана аж 200к фант! Наверно неделю считали. Хотя дальше подход интересный.
    Посчитаны все бонусы всех линий за 2 мин 12 сек.

    Осторожно длинный столбец!


    Top ...
    0: 346396
    1: 22491
    2: 31313
    3: 36523
    4: 39015
    5: 46091
    6: 52190
    7: 117246
    8: 132594
    9: 143596
    10: 2869
    11: 2610
    12: 2229
    13: 2141
    14: 2336
    15: 2509
    16: 2602
    17: 2569
    18: 2343
    19: 2528
    20: 2625
    21: 2708
    22: 2476

    Mid ...
    0: 508918
    1: 0
    2: 81995
    3: 0
    4: 235216
    5: 0
    6: 0
    7: 0
    8: 138403
    9: 0
    10: 0
    11: 0
    12: 35078

    Bot ...
    0: 0
    1: 0
    2: 202799
    3: 0
    4: 398295
    5: 0
    6: 328182
    7: 0
    8: 0
    9: 0
    10: 44976
    11: 0
    12: 0
    13: 0
    14: 0
    15: 22719
    16: 0
    17: 0
    18: 0
    19: 0
    20: 0
    21: 0
    22: 0
    23: 0
    24: 0
    25: 3029

    Sum ...
    0: 17870
    1: 0
    2: 17126
    3: 2336
    4: 61695
    5: 10901
    6: 69232
    7: 21891
    8: 86049
    9: 24148
    10: 58958
    11: 17534
    12: 62079
    13: 7583
    14: 36390
    15: 4503
    16: 5379
    17: 3623
    18: 42932
    19: 30729
    20: 62538
    21: 28391
    22: 57229
    23: 31523
    24: 53462
    25: 18150
    26: 23485
    27: 7292
    28: 11936
    29: 22372
    30: 9560
    31: 12998
    32: 10668
    33: 10578
    34: 3071
    35: 4384
    36: 7981
    37: 7471
    38: 2344
    39: 2973
    40: 4273
    41: 5388
    42: 4842
    43: 1353
    44: 1023
    45: 1614
    46: 1591
    47: 1813
    48: 1235
    49: 892
    50: 1047
    51: 1002
    52: 283
    53: 628
    54: 800
    55: 953
    56: 309
    57: 155
    58: 254
    59: 251
    60: 261
    61: 85
    62: 97
    63: 95
    64: 96
    65: 48
    66: 48
    67: 66
    68: 68
    69: 20
    70: 14
    71: 8
    72: 6

    Время: 2:12,4s

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

    Легко можно проверить для 15, 16 и 17.

    Цитата (c00l0ne @ 8.1.2020)
    нужен пруф ...

    видео выложить?

    дааа.. не рассчитал. надо было больше линий вывести: каре+ в мид.
    84/314
    Ответить Цитировать
    0
  • Цитата (Jak @ 8.1.2020)
    Посчитаны все бонусы всех линий

    Извини,
    надеюсь, не будешь "обижаться", как c00l0ne...

    а в случае равенства ранга комбинаций ты проводишь сравнение?
    Флаш можно положить только на более старший флаш. Казалось бы, ерунда...но это тоже быстродействие...
    321/741
    Ответить Цитировать
    0
1 20 40 41 42 43 62 114
1 человек читает эту тему (1 гость):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.s