Регистрация
Регистрация Поиск Сообщество  
CGM > Казино > Казино софт
Опции темы

Самое быстрое определение покерной комбинации

Важные объявления
Старый 07.09.2006, 00:27     TS Старый   #1 (permalink)
Незнакомец
 
Регистрация: 07.09.2006
Адрес: Moscow
Сообщений: 24
Пусть у нас есть покерная рука из n карт.
Задача: Необходимо с минимальной затратой процессорного времени определить ее старшинство. Двойных комбинаций нет.

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

Может у кого завалялся?
Если нет, то можно и обсудить.
Спасибо.
YuDmAk вне форума      
Старый 07.09.2006, 01:22   #2 (permalink)
Ветеран
 
Регистрация: 26.11.2005
Адрес: Минск
Сообщений: 1,242
Могу под заказ разработать на асм!?
__________________
Единственный способ стать умнее -- играть с более умным противником. // Основы шахмат\'1883
Sharky вне форума      
Старый 07.09.2006, 03:06   #3 (permalink)
Бессмертный
 
Аватар для korovin
 
Регистрация: 13.02.2004
Адрес: Россия
Сообщений: 3,027
Ну у меня есть, n=3..7 Цена вопроса?
korovin вне форума      
Старый 07.09.2006, 04:22   #4 (permalink)
Бессмертный
 
Аватар для Grey
 
Регистрация: 30.04.2004
Сообщений: 3,612
сколько тактов на комбинацию?
__________________
Arthur Grey
Grey вне форума      
Старый 07.09.2006, 06:41   #5 (permalink)
Бессмертный
 
Аватар для korovin
 
Регистрация: 13.02.2004
Адрес: Россия
Сообщений: 3,027
Цитата:
Сообщение от Цитата:
сколько тактов на комбинацию?
Сложный вопрос, могу лиш пример привести:

Анализ двухкарточной комбинации против случайной руки в холдеме при решении влоб требует (50*49)*(48*47*46*45*44)/5/4/3/2/2= 2 097 572 400 сравнении 7-карточных рук, т.е. 4 195 144 800 вызоов этой функции. Вся процедура на PIV3200 у меня занимает 165 сек, т.е. 127 тактов процессора. С другой стороны, таже процедура без вызова этих функций выполняется 122 сек. Т.о. на выполнение чисто функций определения руки уходит всего 33 такта ЦП.

korovin вне форума      
Старый 07.09.2006, 06:51   #6 (permalink)
Бессмертный
 
Аватар для Grey
 
Регистрация: 30.04.2004
Сообщений: 3,612
Цитата:
Сообщение от Korovin писал
Вся процедура на PIV3200 у меня занимает 165 сек, т.е. 127 тактов процессора. С другой стороны, таже процедура без вызова этих функций выполняется 122 сек. Т.о. на выполнение чисто функций определения руки уходит всего 33 такта ЦП.
Что-то перебор у тебя многовато времени занимает. Получается, что перейти к следующему варианту в 4 раза дольше, чем определить силу комбинации, так? А размер таблиц? Мегабайты, десятки, сотни...?
__________________
Arthur Grey
Grey вне форума      
Старый 07.09.2006, 07:22   #7 (permalink)
Бессмертный
 
Аватар для Grey
 
Регистрация: 30.04.2004
Сообщений: 3,612
Да, и еще:

Цитата:
Сообщение от Korovin писал
Анализ двухкарточной комбинации против случайной руки в холдеме при решении влоб требует (50*49)*(48*47*46*45*44)/5/4/3/2/2= 2 097 572 400 сравнении 7-карточных рук, т.е. 4 195 144 800 вызоов этой функции.
Ты каждый раз вычисляешь силу первой комбинации? Ведь можно обойтись меньшим количеством. Для первой С(50,5) = 2 118 760, для второй С(50,5)*С(45,2) = 2 097 572 400, всего 2 099 691 160.


__________________
Arthur Grey
Grey вне форума      
Старый 07.09.2006, 08:23   #8 (permalink)
Бессмертный
 
Аватар для korovin
 
Регистрация: 13.02.2004
Адрес: Россия
Сообщений: 3,027
Все можно улучшить при желании. Однако цена вопроса так и не озвучена.
korovin вне форума      
Старый 07.09.2006, 08:47   #9 (permalink)
Бессмертный
 
Аватар для Grey
 
Регистрация: 30.04.2004
Сообщений: 3,612
Цитата:
Сообщение от Korovin писал
Все можно улучшить при желании. Однако цена вопроса так и не озвучена.
Я не к тому, что у тебя все плохо скорее наоборот. Просто хотелось бы уточнить твою скорость, потому что при таком соотношении (4:1) разность может плавать существенно. А насчет цены -- видимо, автор темы хотел бы получить алгоритм на шару.
__________________
Arthur Grey
Grey вне форума      
Старый 07.09.2006, 16:20     TS Старый   #10 (permalink)
Незнакомец
 
Регистрация: 07.09.2006
Адрес: Moscow
Сообщений: 24
Естественно бесплатно тут никто дарить не собирается, и это понятно было с самого начала.
Дело в том, что передо мной встала непростая задача, и идеи отметаются одна за другой в силу гипердолгих вычислений. Однако сейчас некий путь уже намечен. Вопрос заключается в том, справятся ли мои коды с этой задачей.

Поэтому предлагаю сравнить время определения комбинации
" Ah Kh 5c 8d Js Qd 2h" и поделиться временами исполнения.

З.Ы. Кстати, как в Delphi подсчитать такты ЦП? а то GetTickCount дает шаг в одну миллисекунду, что многовато.

Цена вопроса:......даже не знаю, если анализатор Коровина по БД стоит 50$, то тут ИМХО и 30 должно быть достаточно, хотя деньги конечно смешные, однако если у кого-то есть готовый вариант, то почему бы не посодействовать?
YuDmAk вне форума      
Старый 07.09.2006, 16:23   #11 (permalink)
Бессмертный
 
Аватар для Grey
 
Регистрация: 30.04.2004
Сообщений: 3,612
Цитата:
Сообщение от YuDmAk писал
Кстати, как в Delphi подсчитать такты ЦП? а то GetTickCount дает шаг в одну миллисекунду, что многовато.
производишь искомую операцию миллион (10, 100 млн) раз, засекаешь время и делишь.
__________________
Arthur Grey
Grey вне форума      
Старый 07.09.2006, 16:24   #12 (permalink)
Бессмертный
 
Аватар для korovin
 
Регистрация: 13.02.2004
Адрес: Россия
Сообщений: 3,027
Цитата:
Сообщение от Цитата:
Поэтому предлагаю сравнить время определения комбинации
В смысле одной комбинации??? Может есть смысл поставить ее в цикл из миллиона а потом разделить?
korovin вне форума      
Старый 07.09.2006, 16:24     TS Старый   #13 (permalink)
Незнакомец
 
Регистрация: 07.09.2006
Адрес: Moscow
Сообщений: 24
Я так и понял, когда этот вопрос писал.
Однако спасибо
YuDmAk вне форума      
Старый 07.09.2006, 16:31     TS Старый   #14 (permalink)
Незнакомец
 
Регистрация: 07.09.2006
Адрес: Moscow
Сообщений: 24
у меня получилось 0,000033 сек, у кого еще как?

Проц AMD Turion 64 2,4 ГигаГерц
Вложения
Тип файла: xls poker_video_.xls (16.5 Кб, 38 просмотров)
YuDmAk вне форума      
Старый 07.09.2006, 16:41   #15 (permalink)
Бессмертный
 
Аватар для korovin
 
Регистрация: 13.02.2004
Адрес: Россия
Сообщений: 3,027
Давай так, во сколько раз будет быстрее твоего, такая и цена в $ ок? А лучше рассказал бы что да для чего так жизнено надо, может кто и бесплатно помог бы...
korovin вне форума      
Старый 07.09.2006, 16:42   #16 (permalink)
Бессмертный
 
Аватар для Grey
 
Регистрация: 30.04.2004
Сообщений: 3,612
Цитата:
Сообщение от YuDmAk писал
у меня получилось 0,000033 сек, у кого еще как?
Проц AMD Turion 64 2,4 ГигаГерц
На одну комбинацию??? Если бы ты не написал марку проца, я бы подумал, что у тебя 80286.
__________________
Arthur Grey
Grey вне форума      
Старый 07.09.2006, 16:44   #17 (permalink)
Бессмертный
 
Аватар для Grey
 
Регистрация: 30.04.2004
Сообщений: 3,612
Цитата:
Сообщение от Korovin писал
Давай так, во сколько раз будет быстрее твоего, такая и цена в $ ок?
хех, я бы тоже от штуки баксов не отказался
__________________
Arthur Grey
Grey вне форума      
Старый 07.09.2006, 16:49   #18 (permalink)
Ветеран
 
Регистрация: 26.11.2005
Адрес: Минск
Сообщений: 1,242
Речь идет о чем вообще? Определить ценность руки, типа там пара, стрейт и т.п.?
__________________
Единственный способ стать умнее -- играть с более умным противником. // Основы шахмат\'1883
Sharky вне форума      
Старый 07.09.2006, 16:55     TS Старый   #19 (permalink)
Незнакомец
 
Регистрация: 07.09.2006
Адрес: Moscow
Сообщений: 24
Ну да, надо определить, что там: пустая, АК, пара, две пары, тройка, стрит, флеш, фул, сф, рояль.
YuDmAk вне форума      
Старый 07.09.2006, 16:56   #20 (permalink)
Бессмертный
 
Аватар для Grey
 
Регистрация: 30.04.2004
Сообщений: 3,612
Цитата:
Сообщение от Sharky писал
Речь идет о чем вообще? Определить ценность руки, типа там пара, стрейт и т.п.?
Я так понял, о функции, позволяющей однозначно определить: вот эта рука сильнее той (или равна ей, или меньше), а не только "пара, стрейт и т.п".
__________________
Arthur Grey
Grey вне форума      

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Самое быстрое определение покерной комбинации — Часть 2 Sharky Казино софт 21 16.10.2014 20:28
Медленный подъем и быстрое падение JSinx Безлимитный холдем микро бай-инов 29 09.02.2011 10:07
Быстрое создание playlists ProzAk-R Программное обеспечение 3 22.05.2009 21:04
Autohotkey и быстрое сохранение скринов sergey321 Покер софт 3 11.12.2008 02:12



Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.

Быстрый переход
Правила форумов CGM Контакты Справка Обратная связь CGM.ru Архив Вверх Главная
 
Использование материалов сайта разрешено только при наличии активной ссылки на источник.
Все права на картинки и тексты принадлежат Информационному агентству CGM и их ПАРТНЕРАМ. Политика конфидециальности
CGM.ru на Youtube CGM.ru на Google+ CGM.ru в Twitter CGM.ru на Facebook CGM.ru в vKontakte CGM.ru в Instagram

В сотрудничестве с Pokeroff.ru
Текущее время: 03:58. Часовой пояс GMT +3.
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot