Текстовая версия форума CASINOBOARD << полная версия страницы
Базар вокруг игры / Комп в помощь / Самое быстрое определение покерной комбинации
Страницы(9): [1  2  3  4  5  6  7  8  9  >  »]
YuDmAk
Самое быстрое определение покерной комбинации [ID=24521]
Ср, 6 сентября 2006 23:27 [#]
Пусть у нас есть покерная рука из n карт.
Задача: Необходимо с минимальной затратой процессорного времени определить ее старшинство. Двойных комбинаций нет.

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

Может у кого завалялся?
Если нет, то можно и обсудить.
Спасибо.
Sharky
Re: Самое быстрое определение покерной комбинации [ID=24522] [ответ на 24521 ()]
Чт, 7 сентября 2006 00:22 [#]
Могу под заказ разработать на асм!? Rolling Eyes
korovin
Re: Самое быстрое определение покерной комбинации [ID=24523] [ответ на 24521 ()]
Чт, 7 сентября 2006 02:06 [#]
Ну у меня есть, n=3..7 Цена вопроса?
grey
Re: Самое быстрое определение покерной комбинации [ID=24524] [ответ на 24521 ()]
Чт, 7 сентября 2006 03:22 [#]
сколько тактов на комбинацию?
korovin
Re: Самое быстрое определение покерной комбинации [ID=24525] [ответ на 24521 ()]
Чт, 7 сентября 2006 05:41 [#]
Цитата:
сколько тактов на комбинацию?
Сложный вопрос, могу лиш пример привести:

Анализ двухкарточной комбинации против случайной руки в холдеме при решении влоб требует (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 такта ЦП.
grey
Re: Самое быстрое определение покерной комбинации [ID=24526] [ответ на 24521 ()]
Чт, 7 сентября 2006 05:51 [#]
Korovin писал
Вся процедура на PIV3200 у меня занимает 165 сек, т.е. 127 тактов процессора. С другой стороны, таже процедура без вызова этих функций выполняется 122 сек. Т.о. на выполнение чисто функций определения руки уходит всего 33 такта ЦП.
Что-то перебор у тебя многовато времени занимает. Получается, что перейти к следующему варианту в 4 раза дольше, чем определить силу комбинации, так? А размер таблиц? Мегабайты, десятки, сотни...?
grey
Re: Самое быстрое определение покерной комбинации [ID=24527] [ответ на 24521 ()]
Чт, 7 сентября 2006 06:22 [#]
Да, и еще:

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.

korovin
Re: Самое быстрое определение покерной комбинации [ID=24528] [ответ на 24521 ()]
Чт, 7 сентября 2006 07:23 [#]
Все можно улучшить при желании. Однако цена вопроса так и не озвучена.
grey
Re: Самое быстрое определение покерной комбинации [ID=24529] [ответ на 24521 ()]
Чт, 7 сентября 2006 07:47 [#]
Korovin писал
Все можно улучшить при желании. Однако цена вопроса так и не озвучена.
Я не к тому, что у тебя все плохо Smile скорее наоборот. Просто хотелось бы уточнить твою скорость, потому что при таком соотношении (4:1) разность может плавать существенно. А насчет цены -- видимо, автор темы хотел бы получить алгоритм на шару.
YuDmAk
Re: Самое быстрое определение покерной комбинации [ID=24530] [ответ на 24521 ()]
Чт, 7 сентября 2006 15:20 [#]
Естественно бесплатно тут никто дарить не собирается, и это понятно было с самого начала.
Дело в том, что передо мной встала непростая задача, и идеи отметаются одна за другой в силу гипердолгих вычислений. Однако сейчас некий путь уже намечен. Вопрос заключается в том, справятся ли мои коды с этой задачей.

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

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

Цена вопроса:......даже не знаю, если анализатор Коровина по БД стоит 50$, то тут ИМХО и 30 должно быть достаточно, хотя деньги конечно смешные, однако если у кого-то есть готовый вариант, то почему бы не посодействовать?
grey
Re: Самое быстрое определение покерной комбинации [ID=24531] [ответ на 24521 ()]
Чт, 7 сентября 2006 15:23 [#]
YuDmAk писал
Кстати, как в Delphi подсчитать такты ЦП? а то GetTickCount дает шаг в одну миллисекунду, что многовато.
производишь искомую операцию миллион (10, 100 млн) раз, засекаешь время и делишь.
YuDmAk
Re: Самое быстрое определение покерной комбинации [ID=24532] [ответ на 24521 ()]
Чт, 7 сентября 2006 15:24 [#]
Я так и понял, когда этот вопрос писал.
Однако спасибо
korovin
Re: Самое быстрое определение покерной комбинации [ID=24533] [ответ на 24521 ()]
Чт, 7 сентября 2006 15:24 [#]
Цитата:
Поэтому предлагаю сравнить время определения комбинации
В смысле одной комбинации??? Может есть смысл поставить ее в цикл из миллиона а потом разделить?
YuDmAk
Re: Самое быстрое определение покерной комбинации [ID=24534] [ответ на 24521 ()]
Чт, 7 сентября 2006 15:31 [#]
у меня получилось 0,000033 сек, у кого еще как?

Проц AMD Turion 64 2,4 ГигаГерц

Вложение: poker_video_.xls
(Размер: 16.50KB, Загружено 459 раз)

korovin
Re: Самое быстрое определение покерной комбинации [ID=24535] [ответ на 24521 ()]
Чт, 7 сентября 2006 15:41 [#]
Давай так, во сколько раз будет быстрее твоего, такая и цена в $ ок? А лучше рассказал бы что да для чего так жизнено надо, может кто и бесплатно помог бы...
grey
Re: Самое быстрое определение покерной комбинации [ID=24536] [ответ на 24521 ()]
Чт, 7 сентября 2006 15:42 [#]
YuDmAk писал
у меня получилось 0,000033 сек, у кого еще как?
Проц AMD Turion 64 2,4 ГигаГерц
На одну комбинацию??? Если бы ты не написал марку проца, я бы подумал, что у тебя 80286.
grey
Re: Самое быстрое определение покерной комбинации [ID=24537] [ответ на 24521 ()]
Чт, 7 сентября 2006 15:44 [#]
Korovin писал
Давай так, во сколько раз будет быстрее твоего, такая и цена в $ ок?
хех, я бы тоже от штуки баксов не отказался Laughing
Sharky
Re: Самое быстрое определение покерной комбинации [ID=24538] [ответ на 24521 ()]
Чт, 7 сентября 2006 15:49 [#]
Речь идет о чем вообще? Определить ценность руки, типа там пара, стрейт и т.п.?
YuDmAk
Re: Самое быстрое определение покерной комбинации [ID=24539] [ответ на 24521 ()]
Чт, 7 сентября 2006 15:55 [#]
Ну да, надо определить, что там: пустая, АК, пара, две пары, тройка, стрит, флеш, фул, сф, рояль.
grey
Re: Самое быстрое определение покерной комбинации [ID=24540] [ответ на 24521 ()]
Чт, 7 сентября 2006 15:56 [#]
Sharky писал
Речь идет о чем вообще? Определить ценность руки, типа там пара, стрейт и т.п.?
Я так понял, о функции, позволяющей однозначно определить: вот эта рука сильнее той (или равна ей, или меньше), а не только "пара, стрейт и т.п".
Страницы(9): [1  2  3  4  5  6  7  8  9  >  »]