Re: Программисты помогите ID:10401 ответ на 10276 |
Вс, 13 ноября 2005 18:20 («] [#] [») |
|
|
Но тогда в этом случае, с оценкой каждой руки я не вижу смысла рассматривать 10млн случайных рук. И я теряю преимущество массива сил пятерок.
Либо мы случайно играем по некоторой стратегии и играем 10млн рук, либо полный перебор ВСЕХ рук, их всего 2,6млн.
Для ПОЛНОГО перебора и принятия решения на каждой руке у меня другой другой подход, именно подсчетом кол-ва комбинаций больше/равно/меньше и сравнением МО обменов, покупок и т.д. Тут массив практически используется только для быстрого определения ранга руки. Зато я уменьшил кол-во проверяемых пятерок с 2,6млн всего до 94192 с весами по каждой руке.
Тут полный перебор без обменов всего 0,73сек.
Покупка 6-й = 26,06сек. Обмен 1-й = 11,70сек.
|
|
|
Re: Программисты помогите ID:10402 ответ на 10276 |
Вс, 13 ноября 2005 18:29 («] [#] [») |
|
|
Честно говоря не понял. Для чего нужен софт по покеру? оценить МО, разработать стратегию. Я эту задачу решил. Вы тоже. Оба правы, а как мы это сделали никого волновать не должно. Победителей не судят, важен результат. У меня были проблемы в скорости расчета обменов 3-4-5 карт, я их решил оптимизировав ядро до предела. Кто-то решил эту проблему по другому. Каждый оказался прав по-своему.
|
|
|
Re: Программисты помогите ID:10404 ответ на 10276 |
Вс, 13 ноября 2005 20:52 («] [#] [») |
|
|
Согласен, только я остановился раньше, как узнал, что нет смысла в покере, так и забросил все расчеты.
|
|
|
Re: Программисты помогите ID:10405 ответ на 10276 |
Вс, 13 ноября 2005 21:56 («] [#] [») |
|
|
Korovin писал | Если флеши проверять отдельно, все замечательно получается для рук из 5-6 карт, с 7-ю сложнее. А мне сейчас как раз 7 и нужно. | Из известных мне быстрее всего работает в этом плане PokerStove. Но у меня все равно чуть-чуть быстрее
|
|
|
Re: Программисты помогите ID:10406 ответ на 10276 |
Вс, 13 ноября 2005 22:12 («] [#] [») |
|
|
О чем речь? На входе 7 карт, на выходе номер комбинации по старшинству? Какая скорость?
|
|
|
|
Re: Программисты помогите ID:10408 ответ на 10276 |
Вс, 13 ноября 2005 22:26 («] [#] [») |
|
|
Цитата: | Берем, к примеру, AKo против 1 случайной руки. 1 млн. вариантов (на P-II 800) считает 48 с. Финский калькулятор (URL не помню, поищи по форуму по этим словам) то же самое -- за 19 с. Моя прога делает это за 3 с. | Ясно. имеет ли право на жизнь такой подход: Если есть 5-6-7 карт одной масти, вычисляем алгоритмически, иначе формируем 28-и битный адрес (7*4) и берем из таблицы. Как сжать адрес до 13^7, есть ли в этом смысл?
|
|
|
Re: Программисты помогите ID:10409 ответ на 10276 |
Вс, 13 ноября 2005 23:35 («] [#] [») |
|
|
Не знаю. Я адресами (имеется в виду, наверное, заранее вычисленная сила комбинаций?) вообще не пользовался. Может, и быстрее будет.
|
|
|
Re: Программисты помогите ID:10410 ответ на 10276 |
Вс, 13 ноября 2005 23:59 («] [#] [») |
|
|
Уточни, почему речь о миллионе вариантов: Возможных рук оппонента 50*49/2=1225. Возможных досок 48*47*46*45*44/120=1 712 304. Перемножаем = 2 097 572 400. Сжатие мастей?
|
|
|
Re: Программисты помогите ID:10411 ответ на 10276 |
Пн, 14 ноября 2005 00:39 («] [#] [») |
|
|
Кладем первому игроку 2 заданных карты. Миллион раз выдаем случайную доску из 5 карт и 2 случайные карты второму игроку. Короче, монте-карло.
|
|
|
Re: Программисты помогите ID:10412 ответ на 10276 |
Пн, 14 ноября 2005 01:13 («] [#] [») |
|
|
Спасибо, разобрадся. Чем удобно Монте-Карло, тем что можно задавать не объем вычислений а время выполнения.
|
|
|
Re: Программисты помогите ID:10413 ответ на 10276 |
Пн, 14 ноября 2005 02:46 («] [#] [») |
|
|
<div style="margin:20px; margin-top:5px">
<div class="smallfont" style="margin-bottom:2px">Код:</div>
<pre class="alt2" dir="ltr" style="
margin: 0px;
padding: 4px;
border: 1px inset;
width: 640px;
height: 82px;
text-align: left;
overflow: auto">Korovin писал вс, 30 октября 2005 20:15
Если об обычном покере игроки имеют хоть какое-то представление, то Русский мало того что изначально отрицательный, так еще и провоцирует игрока соверщать ошибки чуть ли не каждую раздачу, плюс более дисперсеонен. Идеальная игра для опустошения карманов.</pre>
</div>Господа програмисты выложили бы идеальную стратегию для русского покера в массы. До "чайников" ее бы довести с МО этой игры и обьяснением как оно снижается при неверных действиях. Глядишь игра станет менее прибыльной для казино и менее популярной среди обывателей и уйдет в прошлое ее популярность- а то ведь скоро кроме русского не останется больше ни одного покера вообще!!!!!!!
Зы поиграл недавно по вынужденным обстоятельствам в русский - так это тихий ужас какой-то- "чайники" покупают и страхуют игру на тройне сплошь и рядом, а многие делают покупку игры даже на двух парах(слышал даже о чудаке который купил игру на паре) и сокрушаются что нельзя страховать две пары...
|
|
|
Re: Программисты помогите ID:10414 ответ на 10276 |
Пн, 14 ноября 2005 03:14 («] [#] [») |
|
|
2Fabrica. Заинтересовался сжатием количества разных рук до 94192 (в смысле их силы). Подскажите сколько из них пустых (влезут ли для сравнения все руки в 2 байта).
Интересно, если будет прикреплен массив в 5 метров для нахождения сил рук, не сильно это затормозится из-за постоянного обращения к случайной памяти не помещающейся в кеше процессора.
|
|
|
Re: Программисты помогите ID:10415 ответ на 10276 |
Пн, 14 ноября 2005 16:37 («] [#] [») |
|
|
Я конечно не последняя инстанция, могу ошибаться, но по моим подсчетам, и существующим у меня массивам (правда, может я не так понял "сжатие по мастям", про которое говорили тут года 2 назад):
94192 рук - тут есть совпадающие по силе руки в которых есть различии по мастям 4-0, 3-1, и остальные с 3,2 мастями, типа 2-2-1, 2-1-1-1, выделял только 4-0 и остальные, для определения на покупку 6-й или обмен 1-й при недофлеше, чтоб не на все руки покупать. Если это убрать, то остается разынх по силе:
28496 рук - тут все руки отсортированы по силе, но есть пустышки, это руки для игрока, чтоб не пропустить не одной и лишка не проверить . Типа - A,J,10,5,2 всех мастей в наборе, кроме флешей, конечно. Или все пары типа 3,3,A,D,5. Пара 3,3,A,D,6 - другая и уже старше. И наконец:
7461 рук - тут все руки в сжатом состоянии.
Если надо могу выслать все файлики. Мне они без разницы.
Как скажете , КОРИФЕИ, отдать или будем жаться? Пусть сами изобретают.
20мег ПОЛНОЙ инфы отсортированной по силе про комбинации жмется ZIP'ом до 8мег, 10мег ПОЛНОЙ инфы по силе по номеру от 1 до 2598960 жмется до 2,6мега.
Это исходные файлы из которых можно все поиметь, а их уже можно сортировать, сжимать как угодно.
|
|
|
Re: Программисты помогите ID:10416 ответ на 10276 |
Пн, 14 ноября 2005 17:26 («] [#] [») |
|
|
Fabrica писал | Как скажете , КОРИФЕИ, отдать или будем жаться? Пусть сами изобретают. | А это уже зависит от адресата. Кому-то можно отдать все исходники с полными комментариями, и ему это не поможет, а кому-то и полунамека на идею реализации достаточно...
|
|
|
Re: Программисты помогите ID:10417 ответ на 10276 |
Пн, 14 ноября 2005 18:09 («] [#] [») |
|
|
Спасибо большое. Но мне быстрее самому сделать, чем разобраться в чьих-то технологиях. Куда важнее идеи и направления для развития.
|
|
|
Re: Программисты помогите ID:10418 ответ на 10276 |
Пн, 14 ноября 2005 18:24 («] [#] [») |
|
|
А там нефиг разбираться, файло 10мег, 2598960 * 4 байта отсортированной инфы. Конечно можно их и самому родить, отсортировать все комбинации по силе и одинаковым дать одинаковую "силу".
|
|
|
Re: Программисты помогите ID:10419 ответ на 10276 |
Пн, 14 ноября 2005 20:05 («] [#] [») |
|
|
Требуется помощь. Полный перебор всех 2 097 572 400 вариантов для 2-х заданных карт против случайной руки:
АК одномастные
Победа: 1 381 517 595
Поражение: 679 651 323
Ничья: 36 403 482
27 разномастные
Победа: 678 603 559
Поражение: 1 300 698 525
Ничья: 118 270 316
Прошу подтвердить или опровергнуть. Разогнал скорости определения комбинации на руке из 7 карт до 30 млн. рук в секунду на PIV-3200, тестирую на ошибки.
|
|
|
Re: Программисты помогите ID:10420 ответ на 10276 |
Пн, 14 ноября 2005 21:03 («] [#] [») |
|
|
2Fabrica. У меня определение комбинации происходит только для своих карт. Если они раздаются случайно, то для определения силы руки их нужно, для начала, отсортировать по возрастанию. Здесь тоже тратится заметно тактов. Хочу немного изменить вашу идею (Korovin подобное высказывал): сначала через условные операторы проверить масти, потом без сортировки по номиналам вычислять индексы. Может отдельно индекс мастей и индекс номиналов. Экспериментирую.
2Korovin. Объяснили бы хоть, что считаете. Интересно ведь…
|
|
|
Re: Программисты помогите ID:10421 ответ на 10276 |
Пн, 14 ноября 2005 21:27 («] [#] [») |
|
|
Tehas Holdem. У игроков по 2 карты, 5 общие на доске. Конкретно, каковы наши шансы выйграть против одной случайной руки до флопа.
|
|
|