Дневник крипто-трейдера.

585
Статистика
Статистика
585
  • 500+
    подписчиков
Статистика темы
  • Популярность
    Топ-139
  • Постов
    2,936
  • Просмотров
    523,166
  • Подписок
    585
  • Карма автора
    +19,242
1 142 143 144 145 147
  •  Galax, с альткоинами, где 1000% летают туда-сюда, обрати внимание на показатель long/short ratio. По нему можно следить за кукловодом.

    Ответить Цитировать
    5/41
    + 0
  •  divs31, Ну по OFCP (ту где по одной карте сдавали) у меня тоже был калькулятор.

    И может быть тоже один из первых в СНГ.

    Мне повезло, что я случайно узнал об этой игре, как только она появилась. И к тому моменту у меня уже были библиотеки для максимально быстрого определения силы покерной комбинации. И калькулятор получилось сделать довольно быстро. Игра тогда была только на GamblerGames.

    Я обратился в личку к Gipsy  и Кравченко с предложением программы. Но они не захотели даже слушать меня. В то время бытовало мнение, что такую программу невозможно сделать. А если кому-то удастся, то она будет стоить сотни тысяч долларов. А тут какой-то ноунейм из провинции предлагает взглянуть на калькулятор...

    Я и мои друзья играли на GamblerGames пару месяцев, может полгода. А затем появился ананас и вся игра перешла на него.

    Вот для ананаса не удалось сделать быстро калькулятор. Я пытался где-то полгода, но что-то не сросталось. Затем я забыл про это на пару лет.

    Спустя пару лет, тут на форуме ребята начали обсуждать, как сделать калькулятор для ананаса. Я участвовал в дискуссии и вспомнил, что у меня есть кое-какие разработки. И затем в какой-то момент, меня осенило и я смог доделать прогу. То что раньше не получалось за полгода, теперь вдруг получилось.

    Но время уже было не то. Популярность игры была уже не та. Игры было не много и в основном в приложениях типа PPP. Игра с джокерами набирала популярность. Сам я играть ленился, а продать кому-то прогу так и не удалось. Так что не удалось монетизировать этот труд.

     

    Я правильно понимаю, что у тебя есть калькулятор для ананаса?

    Вот его я бы хотел сравнить со своим.

    Типа берем какую-то сложную ситуацию и считаем оптимальный ход.

    Мне просто любопытно, нормально ли считала моя прога или нет.

    Сам я уже не буду заниматься этим в любом случае.

    Ответить Цитировать
    1031/1061
    + 6
  • Galax @ 19.04.26  

    Я правильно понимаю, что у тебя есть калькулятор для ананаса?

    Да, для ананаса. Любого и с джокером тоже. Я начал делать для OFCP а закончил ананасом. И тот же Gipsy  по моему калькулятору учился. Сравниться - пожалуйста.

    Сообщение отредактировал divs31 - 19.4.2026, 13:45
    Ответить Цитировать
    6/41
    + 1
  • Galax @ 19.04.26 

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

    У меня это реализовано как 5 карт переводятся в 30-битовое число 5карт по 6 бит. И это есть адрес в массиве где лежит полная нужная инфа

    Ответить Цитировать
    7/41
    + 1
  • divs31 @ 19.04.26  

    У меня это реализовано как 5 карт переводятся в 30-битовое число 5карт по 6 бит. И это есть адрес в массиве где лежит полная нужная инфа

    А у меня как обращение в пяти-мерный массив.

    Не нужно делать никаких преобразований - просто по пяти числам 1-52 обращаюсь в массив и получаю число (чем больше число, тем выше ранг карты). Дальше просто сравниваешь у кого ранг больше, тот набор карт и победил.

     

    P.S.

    Вот такая одна строчка кода дает ранг покерной комбирации при вводе пяти карт с1..с5:

    int a=HR5[ HR5[ HR5[ HR5[ HR5[53+c1]+c2]+c3]+c4]+c5];


     Помоему быстрее ничего не придумать.

    Сообщение отредактировал Galax - 19.4.2026, 15:11
    Ответить Цитировать
    1032/1061
    + 1
  • Давай сравним пару расскладов.

     

    Я одно время плотно общался с одним регуляром, который катал дорогую игру и говорил, что имеет посчитанные рассклады.

     

    Такие рассклады: 

    1. AT6s, 9, 6  

    2. AT7s, 9, 7

     

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

     

    1.

    Sim 2 : 3.80
    Row 1: Ac
    Row 2: 9s 6h 6c
    Row 3: 10c

    Sim 1 : 4.22
    Row 1: 9s
    Row 2: 10c Ac
    Row 3: 6h 6c

    Sim 0 : 4.75
    Row 1: Ac
    Row 2: 6h 6c
    Row 3: 9s 10c

     

    Это мои рассчеты и он подтвердил, что это правильные варианты.

     

    2.

    Sim 2 : 4.00
    Row 1: Ac
    Row 2: 9s
    Row 3: 7h 10c 7c

    Sim 1 : 4.20
    Row 1: 
    Row 2: 9s Ac
    Row 3: 7h 10c 7c

    Sim 0 : 4.31
    Row 1: 
    Row 2: 10c Ac
    Row 3: 7h 9s 7c

     

    Тут он говорит, что правильнее тот вариант, что у меня идет под Sim 2. Хотя все варианты очень близкие, разница 0.3 куша между первым и третьим.

     

    P.S.

    Это обычный ананас и цена за фантазию 9.78.

    Ответить Цитировать
    1033/1061
    + 0
  • Galax @ 19.04.26 

     Помоему быстрее ничего не придумать.

    Да. Не придумать. Только у меня таблицы с холдема, а там кроме комбинации нужно еще отслеживать дро-не дро, вероятности дохода, и пр., а также для 6 и для 7 карт. Поэтому там индексация двойная или тройная и все влазит в 20 Гб.

    Ответить Цитировать
    8/41
    + 1
  •  divs31, У меня тоже есть массив для 7 карт холдема.

    И весит он около 130Мб.

    Обращение к нему такое же - 7 индексов в массиве.

    На выходе получаем 32 битное число. Наверное в эти 4 байта можно сохранить всю нужную инфу. Я использую только ранг карты (стрит, флеш, фуллхаус и т.д.) и кикер внутри ранга.

    Для 5 карт китайского массив занимает всего 20-30Мб (не помню точное число).

    Эти файлы спокойно можно загрузить в оперативку.

     

    А вот 20 Гб как ты загрузишь в оперативку? Значит ты погружаешь их с диска, а это медленее, чем читать с оперативки.

    В этом файле HR5 (или  HR7) очень интересный метод хранения инфы. Это позволяет сильно экономить место и вместо массива 52^7 получить массив в 130 Мб. Я несколько раз на форуме писал об этом массиве, как он устроен и как его получить.

    Ответить Цитировать
    1034/1061
    + 1
  • Galax @ 19.04.26  

    Это обычный ананас и цена за фантазию 9.78.

    У меня цена за фантазию 9.5. Еще важно на двух или трех человек игра.

    на первом месте 

    ----

    АсТс

    6h6c9s

    ev = -0.41+-0.13

     

    второй вариант

    -----

    Ac9s

    7h7cTc

    ev=-0.28 +- 0.13

     

    Ответить Цитировать
    9/41
    + 1
  • Galax @ 20.04.26 

    У меня тоже есть массив для 7 карт холдема.

    И весит он около 130Мб.

    Обращение к нему такое же - 7 индексов в массиве.

     

    Galax @ 20.04.26 

    Для 5 карт китайского массив занимает всего 20-30Мб (не помню точное число).

    Эти файлы спокойно можно загрузить в оперативку.

    Я их вообще формирую во время загрузки программы в память. Весь массив делается за микросекунды.

     

     divs31, это ты по 10000, 20000 вариантов посчитал? И все? Сделал вывод о раскладе?

     

    Хотя бы 100кк посчитал бы.

    Ответить Цитировать
    20/38
    + 1
  • divs31 @ 20.04.26 

    У меня цена за фантазию 9.5. Еще важно на двух или трех человек игра.

    А как влияет то - для двух или трех человек игра.

    Я так знаю, что фантазия в таких случаях берется немного разная.

    Или есть еще какие-то другие факторы?

    Ответить Цитировать
    1035/1061
    + 1
  •  Galax, 20 ГБ не такая уж и большая память. Все грузится в оперативку. Но это для холдема. Для китайского значительно меньше, но тоже не пытался сильно сжать. Скорость важнее.

    А как ты умудрился впихнуть 7 карт в 130 Мб. просто 7 мерный массив это 52 в 7 степени это 4 Тб по 4 ьайта. Но даже если сжать то там 10**9 вариантов и на 4 байта уже 4 Гб.

    Ответить Цитировать
    10/41
    + 1
  • Jak @ 20.04.26 

    Хотя бы 100кк посчитал бы.

    У меня дома комп слабенький, неохота подолгу считать.

    Я там указал точность расчета, поэтому, да, некоторые варианты из топ-3 могут в результате поменяться местами, но они очень близки к друг другу. 

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

    Ответить Цитировать
    11/41
    + 1
  • чтобы иметь +4 перед оппами со стартера, это должен быть просто лом какой-то. Видимо у тебя не учтены роялти соперников, чтобы уменьшить диспу. я тоже так делал в начале, потом стал считать честно, мощность компов позволяла

    Ответить Цитировать
    12/41
    + 1
  •  divs31, Да, я не учитываю роялити оппов, когда у них нет карт еще.

     

    Мне кажется абсолютное значение результата не имеет большого значения. Важно относительное значение вариантов друг от друга. Т.е. точка отсчета от которой считаем не так важна.

     Важно какой-вариант лучший и на сколько (чтобы прикинуть погрешность ответа).


    Кстати у меня оценивает в кушах, а у тебя как?

    На глазок у тебя разница между вариантами слишком маленькая, может ты в чем-то другом оцениваешь ЕВ?

    Ответить Цитировать
    1036/1061
    + 1
  • divs31 @ 20.04.26 

    У меня дома комп слабенький, неохота подолгу считать.

    Выходит, что если у тебя, например, случайно 1-2 раза из 10к, выпадет каре вниз, в мид ААА, а вверх ККК вот тут

    АсТс9s

    6h6c

    ev = -1.119

    то этот расклад наверно опередит этот, в котором он не выпадает

    АсТс

    6h6c9s

    ev = -0.41+-0.13??

    Или такой вариант невозможен?

    Ответить Цитировать
    21/38
    + 1
  • Сравнения нужно проводить в одинаковых условиях.

    Поэтому пересчитал все для фантазии в 9.5:

    Результаты вышли как у тебя:

     

    1.

    Sim 2 :   4.49
    Row 1:  Ac
    Row 2:  6h 6c
    Row 3:  9s 10c

    Sim 1 :   4.53
    Row 1: 
    Row 2:  9s Ac
    Row 3:  6h 10c 6c

    Sim 0 :   6.04
    Row 1: 
    Row 2:  10c Ac
    Row 3:  6h 9s 6c
     

    2.

    Sim 3 :   4.35
    Row 1:  Ac
    Row 2:  7h 7c
    Row 3:  9s 10c

    Sim 2 :   4.37
    Row 1:  Ac
    Row 2:  9s
    Row 3:  7h 10c 7c

    Sim 1 :   4.67
    Row 1: 
    Row 2:  9s Ac
    Row 3:  7h 10c 7c

    Sim 0 :   4.68
    Row 1: 
    Row 2:  10c Ac
    Row 3:  7h 9s 7c
     

    Для второго рассклада первые 4 варианта очень близкие (в пределах погрешности).

     

    Удивляет, что для первого рассклада лидер поменялся, когда мы поменяли фантазию с 9.78 на 9.5 (вроде незначительное изменение). Но это уже не проблема программиста, а проблема игрока - как он оценивает фантазию.

    У меня были данные 6-ти летней давности - для 2-макс 9,78, для 3-макс 9,27.

    Возможно сейчас уже другие актуальные данные.

     

    Пока я вижу, что у нас одинаковые расчеты.

    Может ты подкинешь какие-то спорные ситуации?

    Ответить Цитировать
    1037/1061
    + 1
  • divs31 @ 20.04.26 

    А как ты умудрился впихнуть 7 карт в 130 Мб. просто 7 мерный массив это 52 в 7 степени это 4 Тб по 4 ьайта. Но даже если сжать то там 10**9 вариантов и на 4 байта уже 4 Гб.

    Я пытался объяснить одному незадачливому программисту в другой теме.

    Вот несколько цитат оттуда:

    Ты все таки хочешь понять, как получился этот массив? Но это не имеет практического значения, так как программа которая создает этот массив запускается только один раз и после всех расчетов (относительно длительных) сохраняет его на диске. В дальнейшем вы просто загружаете этот массив из диска в оперативку и извлекаете готовый ранг 5-ти карт из оперативки. Это самый быстрый способ узнать силу 5-ти карточной руки. Ни каких сортировок при этом не делается, никаких промежуточных проверок на флеш или стрит - ничего ресурсно-затратного. Просто пять обращений к массиву и на выходе ранг пяти карт. Причем в старших байтах этого ранга хранится информация о комбинации (фулл-хаус, флеш, стрит и т.д.), в младших - порядковый номер этой руки внутри комбинации.
    Если же все-таки хочешь сам разобраться, то рекомендую скачать исходник ( я давал ссылку выше). Я в свое время распечатал его и штудировал строчка за строчкой. Там много интересных программистских трюков, оптимальные методы сортировки, использование внешних библиотек для расчета ранга готовой руки... Но ты вряд ли сможешь это сам повторить, да и за чем изобретать велосипед.

    Но попробуй в двух словах - как это работает. 
    Перебираете в цикле все возможные комбинации из 52-х карт - сначала однокарточные, потом двух-карточные и т.д. до 5-ти карточных. каждый раз сортируете полученные карты и проверяете встречалась ли вам ранее такая комбинация карт. Если не встречалась такая комбинация то присваиваете ей первый свободный адрес в массиве и сразу резервируете за этим адресом еще 52 ячейки для хранения следующих ссылок. Если же такая комбинация уже была, то мы ищем ее адрес и ссылаемся уже на него. Таким образом мы резервируем в массиве место только для новых комбинаций и не повторяем уже существующие. Благодаря сортировке, все перестановки одних и тех же карт будут иметь одну и ту же комбинацию и будут ссылаться на один адрес. Параллельно мы проверяем комбинацию карт на возможность флеша. Если флеш не возможен, то все варианты карт (например АК) идентичны и ссылаются на один адрес соответствующий АхКх. Если флеш возможен то есть четыре варианта     ,  ,   и мы будем ссылаться на эти варианты по-отдельности на четыре разных адреса.

    Итак какая экономия места? Возьмем к примеру те же АК. их можно получить 16 способами (4 туза и 4 короля) учитывая порядок карт (КА) еще в два раза больше. Итого 32 способа - чтобы хранить все ссылки без оптимизации, нужно 32 ячейки в массиве. После оптимизации - только 5 ячеек (четыре одномастных АК и один разномастный).
    Для трех карт еще круче. АКQ - всего вариантов 4*4*4= 64, перестановок 6, итого 64*6=384. После оптимизации все те же 5 ячеек массива (    ,             ). 

     

    БиллиУбили, Блин, невозможно уже читать твои посты о том как определить комбинацию из 5-ти карт.
    Сначала я дал тебе наводку, на самый быстрый алгоритм, потом пришел Jak и дал готовый файл и подробную инструкцию, как им пользоваться. Надо дать должное его терпению, он пытался тебе тщательно все объяснить. Вот ссылка на начало объяснения. Прочитай внимательно несколько раз, там важно каждое слово. Если все равно не поймешь, как устроен этот массив, не беда, тебе это не обязательно - прими это как должное, как "черный ящик". Все что тебе нужно - это преобразовать код с Делфи на свой язык программирования. Всего одна строчка кода:

    int a=HR5[ HR5[ HR5[ HR5[ HR5[53+c1]+c2]+c3]+c4]+c5]; 

    Да, она кажется ужасной и непонятной, но поверь, это намного проще, чем написать весь код с нуля (то что ты пол-года пытаешься сделать и не сдвинулся ни на шаг). Ладно, попробую тебе еще один раз объяснить, как устроен этот массив. Представь детскую настольную игру, где ты кидаешь кубик и ходишь по кружочкам и если на финальном кружочке есть стрелка, то переходишь по ней на другой кружочек. Так вот у тебя есть такая длинная цепочка кружочков и вместо кубика ты вытягиваешь карту и ходишь от 1 до 52. На том месте куда ты пришел есть стрелка куда тебе нужно переместиться (вместо стрелки номер кружочка на какой нужно перейти). Перемещаешься на этот кружочек и снова тянешь карту и ходишь от 1 до 52, а там снова стрелка. И так, после 5-ти карт и 5-ти перемещений ты попадаешь наконец на кружочек на котором написано Приз в виде абстрактного числа, которое однозначно определяет силу комбинации 5-ти карт (заранее рассчитанное число с помощью хитроумного алгоритма, который знать не обязательно). Этот массив (эта игра) так хитроумно устроен, что одинаковые комбинации карт ссылаются на одну и ту же ячейку (одинаковыми считаются набор карт, где поменян порядок следования и карты одного ранга, когда флеш невозможен). Поэтому на одну финальную ячейку с Призом ведут сотни стрелочек из различных мест. Благодаря этому удается сжать пятимерный массив невероятных размеров [52, 52, 52, 52, 52] до вполне разумного по размерам одномерного массива.

     

    Странно, что ты не слышал про этот метод определения ранга 5-7 карт.

    Когда его придумали (довольно давно), то после этого уже никто ничего нового не изобретал, так как очевидно, что это самый быстрый метод.

    Ответить Цитировать
    1038/1061
    + 1
  • Galax @ 20.04.26 

    Кстати у меня оценивает в кушах, а у тебя как?

    Тоже в кушах

    Ответить Цитировать
    13/41
    + 1
  •  Jak, Все расклады считаются одними и теми же затусованными колодами. Т.е. скорее всего если и в первом выпадет 2 раза из 10000, то и во втором тоже 2 раза скорее всего. Там могут разойтись пути из-за 10-к и 9-к, но это маленькая вероятность. Ну и Монтекарло на то и МонтеКарло, что не дает абсолютного результата

    Ответить Цитировать
    14/41
    + 1
1 142 143 144 145 147
1 человек читает эту тему (1 гость):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.