Страницы(7): [ «  <  #  1  2  3  4  5  6  7  >  »]   Перейти вниз
Re: Soft Speed Test   ID:25016   ответ на 24894 Ср, 14 марта 2007 17:52 («] [#] [»)
grey Форумы CasinoGames
Sharky писал
Мде, отстал я от жизни.. И все-таки Grey, как ты считаешь? Если 143K заготовок, то это одно, и сравнивать тесты так как мы имхо нельзя, или все пересчитываешь?
Не совсем понял про 143K, но считаю все честно Smile
        
 
Re: Soft Speed Test   ID:25017   ответ на 24894 Ср, 14 марта 2007 18:30 («] [#] [»)
Шамсутдинов Форумы CasinoGames
Sharky
2 Шамсутдинов: Абсолютно точную покупку игры уже я делал, и алгоритм был описан на страницах форума + демка была..
У вас 888 постов. Поиск займет время. Хотя много интересного.
        
 
Re: Soft Speed Test   ID:25018   ответ на 24894 Чт, 15 марта 2007 01:44 («] [#] [»)
korovin Форумы CasinoGames
Цитата:
Я получаю количества всех комбинаций у дилера (AK, 2, 2+2, 3, S, F, 3+2, 4, FS, FR). Получаю количество пустых комбинаций у дилера вычитанием из его общего количества этих. Если у игрока не пустая комбинация, то производится подсчет таких же по достоинству комбинаций у дилера, равных или больших по сравнению всех карт - это наибольшее сложная и большая часть кода по количеству строк.

Так ли делаетcя в вариантах, лучших чем мой? Например, ищется ли количество всех стритов и флеш-стритов по отдельности у делера, если у игрока пара? Или, если у игрока нет игры, может быть сразу ищется в скольких случаях у дилера она есть, то есть хотя бы 2 одного достоинства, флеш или стрит (придется еще искать количество FS).
Если у игрока пустая, мне достаточно знать число пустых рук дилера. Если ТК - пустых и ТК младше/равно, ... Так как подавляющее большинство анализаируемых рук пустые, ТК и пары, экономия в объеме вычислений значаительная. По покупке игря Sharky получил очень интересные результаты, ищите.

Цитата:
И еще, не совсем понятно как Вы успеваете анализировать все варианты обменов (Русский покер) без упрощений, ведь один только пятак на первом боксе требует анализа 1370754 вариантов (3 секунды при вашей скорости).

Это делается тоже комбинаторно - мощная разработка, гораздо концептуально сложнее чем комбинаторный перебор 4 карт дилера. при желании могу объяснить, как это делается, но сразу скажу, что очень не просто. Правда у меня там есть дублирующий алгоритм, который работает в 4 раза медленнее (если не изменяет память), он намного проще, но полностью эквивалентен. Его я ипользовал (после переделки) для покупки игры, когда нет комбинации туз-король - когда меняется младшая, а не старшая карта дилера.
Оптимизация алгоритмов обмена - следующая интереснейшая тема после оптимизации ядра. Боюсь что Вы единственный, кто решил эту задачу (оптимизации) без потери точности. По поводу сложности алгоритма полностью согласен, я его так и не осилил - ограничиллся упрощенной оптимизацией.
        
 
Re: Soft Speed Test   ID:25019   ответ на 24894 Чт, 15 марта 2007 19:17 («] [#] [»)
Шамсутдинов Форумы CasinoGames
Korovin
Оптимизация алгоритмов обмена - следующая интереснейшая тема после оптимизации ядра. Боюсь что Вы единственный, кто решил эту задачу (оптимизации) без потери точности. По поводу сложности алгоритма полностью согласен, я его так и не осилил - ограничиллся упрощенной оптимизацией.
Так я тоже упростил, но несущественно, см. pkr.doc:
Допущения при покупке игры.
1) Если у дилера после покупки (или после повторной покупки) выпал F и у игрока тоже F, то считается, что карта дилера больше, игнорируя старшинство F.
2) Если у дилера после покупки (или после повторной покупки) выпал FS или FR, то считается, что у него S того же старшинства.
Старшинство S учитывается, в том числе возможность stay.

Но отклоненния небольшие, тем более в очень редко встречающихся случаях. В остальном все точно.

Сейчас пишу быстродействующую версию основного алгоритма и тестовую программы, такой же, как у всех. Уже написал 336 строк - подсчет количества "есть игра" у дилера и общепринятый тест. Не успел еще заполнить массив комбинаций у игрока. Пока массивы в сумме занимают 1МБ.
        
 
Re: Soft Speed Test   ID:25020   ответ на 24894 Пт, 16 марта 2007 16:05 («] [#] [»)
Шамсутдинов Форумы CasinoGames
Sharky писал ср, 14 марта 2007 16:50
2 Шамсутдинов: Абсолютно точную покупку игры уже я делал, и алгоритм был описан на страницах форума + демка была..
Здесь?
http://forum.cgm.ru/msg?th=8273&prevloaded=1&st= art=160</a>

Интересна с какой скоростью она считалась. Пока не вникал.

Сделал в основном алгоритме расчет количества у дилера "есть игра". Получилось в тесте в 3 раза быстрее, чем у Грея. Так что расчет, когда у игрока пара, можно сделать в 5 раз медленнее для получения такого же результата, как у Грея.
        
 
Re: Soft Speed Test   ID:25021   ответ на 24894 Пт, 16 марта 2007 16:09 («] [#] [»)
korovin Форумы CasinoGames
Цитата:
Сделал в основном алгоритме расчет количества у дилера "есть игра".
Мне кажется что посчитать число беспарок и отнять число стритов/флешей проще чем считать число "есть игра".
        
 
Re: Soft Speed Test   ID:25022   ответ на 24894 Пт, 16 марта 2007 16:42 («] [#] [»)
grey Форумы CasinoGames
Шамсутдинов писал
Сделал в основном алгоритме расчет количества у дилера "есть игра". Получилось в тесте в 3 раза быстрее, чем у Грея. Так что расчет, когда у игрока пара, можно сделать в 5 раз медленнее для получения такого же результата, как у Грея.
Если считать только это (или вообще общее количество комбинаций типа рояль, каре ... нет игры), так и в 10 раз быстрее можно. Львиную долю времени занимает расчет старше/младше/равно внутри комбинации.
        
 
Re: Soft Speed Test   ID:25023   ответ на 24894 Пт, 16 марта 2007 17:44 («] [#] [»)
Шамсутдинов Форумы CasinoGames
Korovin писал пт, 16 марта 2007 16:09
Мне кажется что посчитать число беспарок и отнять число стритов/флешей проще чем считать число "есть игра".
Количество, когда есть хотя бы две одного ранга, не считается, а берется, зная количество раных количеств от 0 до 3 (для 4 следует из для 0,1,2,3) свободных карт по рангам. Причем, делаем не многомерный массив [13][13][13][13], а одномерный [13^4] для получения индекса [1820=C(16,4)] для доступа в другие массивы. Тем более, что этот индекc [13^4] легко модифицировать, например, для исключении ранга, например при расчете количества комбинаций туз-король после "парок". При получение "парок" второй индекс массива - количество свободных карт, того же ранга, что и КД (карта дилера).
Количество "есть игра" я считаю, как количество парок + количество туз-король, включая стриты и флеши с тузом и королем + количество стритов, исключая тузовых + количество флешей - количество FS и FR. По-моему, быстрее посчитать уже невозможно.
Grey
Если считать только это (или вообще общее количество комбинаций типа рояль, каре ... нет игры), так и в 10 раз быстрее можно. Львиную долю времени занимает расчет старше/младше/равно внутри комбинации.
Не знаю, как в 10. В парах придется делать несколько циклов на меньшую половину рангов для сравнения по i-ой карте. Отдельно для случаев, когда КД совпадает с i-ой картой или не совпадает. Но каждый результат в цикле можно получить сразу (обращением в массив). Насколько я понимаю, обойтись без этих циклов невозможно.
        
 
Re: Soft Speed Test   ID:25024   ответ на 24894 Пт, 16 марта 2007 18:41 («] [#] [»)
grey Форумы CasinoGames
Шамсутдинов писал
Не знаю, как в 10. В парах придется делать несколько циклов на меньшую половину рангов для сравнения по i-ой карте. Отдельно для случаев, когда КД совпадает с i-ой картой или не совпадает. Но каждый результат в цикле можно получить сразу (обращением в массив).
Какой может быть массив? При произвольном количестве и составе "мертвых" карт??? Для полной колоды, я понимаю, можно сделать.
        
 
Re: Soft Speed Test   ID:25026   ответ на 24894 Пн, 19 марта 2007 10:20 («] [#] [»)
Шамсутдинов Форумы CasinoGames
Grey писал пт, 16 марта 2007 18:41
Какой может быть массив? При произвольном количестве и составе "мертвых" карт??? Для полной колоды, я понимаю, можно сделать.
Как же вы достигли такого быстродействия, если не использовали эту идею?
1. Считаем количества свободных карт по рангам - это числа 0..4.
2. Считаем количества среди этих чисел, не включая ранга карты дилера отдельно 0, отдельно 1, 2 и 3 (остальные - 4). Пусть эти количества -r0,r1,r2,r3. r0+r1+r2+r3<=12 (нет ранга карты дилера). Таких наборов (r0,r1,r2,r3) всего С(12+4,4)=1820.
3. Делаем массив перехода от числа 0..13^4-1 к числу 0..1820-1. Кстати, можно не хранить r0,r1,r2,r3, а сразу вычислять r0+r1*13+r2*13^2+r3*13^3, все время добавляя 13^s. Но в моем новом коде этого пока нет. Такая же сумма, но не по всем рангам, а только до третьей карты в паре понадобится при подсчете количества меньших пар у дилера (я сейчас этим занимаюсь).
4. Для каждого набора (r0,r1,r2,r3) однозначно определно количество комбинаций 2, 2+2, 3, 3+2, 4, а также их общее количество ("парок"). Получаем для каждого числа 0..1820-1 массив структур, составленных из этих чисел. Кроме того, при получении количества пар у дилера, младших пары игрока по старшинству пары, потребуется массив [1820][5], где второй индекс указывает на количество свободных карт в ранге, для которого узнается количество пар этого ранга у дилера. Первый индекс - тот же, что и исходный (для определения "парок").

Для оптимизации я все циклы развернул в полный код без циклов. Для флешей сделал массив [13][2^12], где первый индекс - ранг карты дилера (КД), а второй - занятость карт масти открытой КД, исключая ранга КД в двоичной системе счисления.

Компилятор Microsoft Visual Studio (MVS) может оказаться быстрее компилятора Builder6, который я использую, поэтому можно будет вычислительную часть теста сделать как dll на MVS. Также можно будет в основной моей программе импортировать функцию подсчета комбинаций у дилера. Таким образом, можно будет разным оболочкам присоединять вычислительный модуль как dll. Что можно использовать для отладки, сравнения результатов и т.п.
        
 
Re: Soft Speed Test   ID:25028   ответ на 24894 Ср, 21 марта 2007 15:31 («] [#] [»)
Шамсутдинов Форумы CasinoGames
Написал и отладил код основной процедуры для случая "нет игры" и "пара" (подсчет младших и равных пар). Если в случаях, когда не "пара" считать как нет игры, а когда "пара" считать полностью, то мой тест дает время лучше, чем у Грея в 3,03 раза.
Доля пар к общему количеству комбинаций: 0,4226.
Время подсчета "нет игры" без оболочки теста / время оболочки теста = 2,02.
Чистое время подсчета старшинства пары / подсчет "нет игры" = 0,57 (исключается время оболочки теста).
        
 
Re: Soft Speed Test   ID:25029   ответ на 24894 Чт, 22 марта 2007 18:41 («] [#] [»)
Sharky Форумы CasinoGames
Как я понимаю, у нас новый лидер... Cool
Моя последняя демка обгоняет более чем на 2 сек. с полной колодой демку Грея (на моем железе). Чем больше карт выкинуть, тем быстрее обгоняет (странно)..

Вложение: sharky103.exe
(Размер: 228.00KB, Загружено 758 раз)
        
 
Re: Soft Speed Test   ID:25030   ответ на 24894 Пт, 23 марта 2007 21:01 («] [#] [»)
Sharky Форумы CasinoGames
Файл обновил, в старом млин деление на нуль c неполной колодой было Smile Извиняюсь, не проверил как следует...

Вложение: sharky103b.exe
(Размер: 228.00KB, Загружено 813 раз)
        
 
Re: Soft Speed Test   ID:25031   ответ на 24894 Сб, 24 марта 2007 04:01 («] [#] [»)
korovin Форумы CasinoGames
Круто. Всетаки соревноватьльность - двигатель прогресса. Не пора ли уже обмены+покупку игры добавлять? Правда есть опасение что соревнования не получится, всем лень, но если будет хотябы один результат, будет шанс что кто-нибудь подтянется и переплюнет.
        
 
Re: Soft Speed Test   ID:25032   ответ на 24894 Сб, 24 марта 2007 11:53 («] [#] [»)
grey Форумы CasinoGames
Korovin писал
Круто. Всетаки соревноватьльность - двигатель прогресса. Не пора ли уже обмены+покупку игры добавлять? Правда есть опасение что соревнования не получится, всем лень, но если будет хотябы один результат, будет шанс что кто-нибудь подтянется и переплюнет.
На данный момент есть более интересная тема, так что в ближайшее время я пас. Разве что кто-нибудь материально заинтересует Laughing
        
 
Re: Soft Speed Test   ID:25033   ответ на 24894 Сб, 24 марта 2007 13:04 («] [#] [»)
ёжик Форумы CasinoGames
Цитата:
На данный момент есть более интересная тема, так что в ближайшее время я пас.
За клубный взялся?!
        
 
Re: Soft Speed Test   ID:25034   ответ на 24894 Сб, 24 марта 2007 14:50 («] [#] [»)
Fabrica Форумы CasinoGames
В клубном уже почти все есть.
        
 
Re: Soft Speed Test   ID:25035   ответ на 24894 Сб, 24 марта 2007 15:10 («] [#] [»)
Gramazeka Форумы CasinoGames
ёжик писал сб, 24 марта 2007 12:04
Цитата:
На данный момент есть более интересная тема, так что в ближайшее время я пас.
За клубный взялся?!
А он с Маринером списался Very Happy
        
 
Re: Soft Speed Test   ID:25036   ответ на 24894 Вс, 25 марта 2007 02:09 («] [#] [»)
Sharky Форумы CasinoGames
Korovin писал сб, 24 марта 2007 03:01
Круто. Всетаки соревноватьльность - двигатель прогресса. Не пора ли уже обмены+покупку игры добавлять? Правда есть опасение что соревнования не получится, всем лень, но если будет хотябы один результат, будет шанс что кто-нибудь подтянется и переплюнет.
Спасибо! Но вот эта демка уже поубойнее будет.. Во-первых считает примерно на 10% быстрее предыдущей, во-вторых оптимизировал работу с памятью (теперя жрет не более 8Mb). Сам себе удивляюсь, что не дошел до этого раньше...

Вложение: sharky104.exe
(Размер: 229.00KB, Загружено 886 раз)
        
 
Re: Soft Speed Test   ID:25037   ответ на 24894 Вс, 25 марта 2007 02:22 («] [#] [»)
Sharky Форумы CasinoGames
Насчет обменов: нашими тестами не получится, имхо. Неизбежно переполнение даже Int64 для Value, и уж очень долго будет считать.. В наших тестах просчитываются игры: C{52,1} * C{51,5} * C{46,4} = 52 * 2349060 * 163185 = 19,933,230,517,200
Если добавить обмен 1 карты, то считать уже надо: C{52,1} * C{51,5} * (C{46,4} + C{5,4} * C{42,1} * C{41,4}) = 52 * 2349060 * (163185 + 5 * 42 * 101270) = 122151120 * 21266700 =
2,597,751,223,704,000
Короче гроб.. В лучшем случае будет в 210 (C{5,4} * C{42,1}) раз дольше Smile Кто интересно будет ждать 3.5 часа? Smile Надеюсь, правильно сосчитал... устал блин.
        
 
Страницы(7): [ «  <  #  1  2  3  4  5  6  7  >  »]  
Предыдущая тема:ПРОСТАЯ ПРОГА ДЛЯ РУЛЕТКИ (БЕСПЛАТНО)
Следующая тема:Карманный бильярд и проч.
Быстрый переход к форуму
  
Текстовая версия  RSS лента
Вернуться вверх

Текущее время: Сб, 16 ноября 11:47:38 2024
Время, затраченное на генерацию страницы: 0.02040 секунд