Просмотреть всю тему "Soft Speed Test (покер)" »»
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-ой картой или не совпадает. Но каждый результат в цикле можно получить сразу (обращением в массив). Насколько я понимаю, обойтись без этих циклов невозможно.