Re: Самое быстрое определение покерной комбинации ID:24561 ответ на 24521 |
Чт, 7 сентября 2006 16:26 («] [#] [») |
|
|
Так тебе для какого N то надо? До 5 делается просто таблица 52^N, если 6-7 то 13^N используеш Адрес формируеш когда карту в руку кладеш, так что в самом вложеном цикле у тебя формируется ОДНА последняя цифыра адреса и одно образение к таблице. ВСЕ. как формировать флаг мастеой комбинации надеюсь сообразиш.
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24562 ответ на 24521 |
Чт, 7 сентября 2006 16:27 («] [#] [») |
|
|
Sharky писал | А итоговый перебор со сравнением рук, например для 6карточного у меня в 1,5-2 раза быстрее думаю будет... | А конкретнее можно, что такое итоговый перебор?
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24563 ответ на 24521 |
Чт, 7 сентября 2006 16:29 («] [#] [») |
|
|
надо на n=7.
Короче ключ в таблицах, да?
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24564 ответ на 24521 |
Чт, 7 сентября 2006 16:30 («] [#] [») |
|
|
Korovin писал | Так тебе для какого N то надо? До 5 делается просто таблица 52^N | Эх, Коровин, все-таки отдал за просто так. Тебе ж целых 30 баксов предлагали
"Это вы придумали Windows..."(c) Легко и просто, только оперативки побольше, побольше!
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24565 ответ на 24521 |
Чт, 7 сентября 2006 16:32 («] [#] [») |
|
|
Только когда "13^N используеш" а масти отдельно считаешь, то приходиться сф и рояль отдельно обрабатывать, но это не беда.
Так в чем пишите то?
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24566 ответ на 24521 |
Чт, 7 сентября 2006 16:33 («] [#] [») |
|
|
Grey писал чт, 07 сентября 2006 16:27 | Sharky писал | А итоговый перебор со сравнением рук, например для 6карточного у меня в 1,5-2 раза быстрее думаю будет... | А конкретнее можно, что такое итоговый перебор? | Тьфу, обмен карт в смысле. Коровин где-то писал, что обмен 5 у него 2 сек на его супер компе. У меня все обмены и +1 карта -- 2,3 сек на моем компе с меньшей частотой в 2 раза. Запускал демку Блица, и засекал секундомером на мобилке его скорость перебора в районе 6-7 секунд против моих 2,3.
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24567 ответ на 24521 |
Чт, 7 сентября 2006 16:35 («] [#] [») |
|
|
Просто я не таблицами делал, а так просто детектил по вопросам:
рояль?
каре?
.
.
.
пара?
ак?
без игры
Согласен, куча лишней и бесполезной работы. Только обсмеивать не надо.
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24568 ответ на 24521 |
Чт, 7 сентября 2006 16:37 («] [#] [») |
|
|
Sharky писал | Коровин где-то писал, что обмен 5 у него 2 сек на его супер компе. | Сомневаюсь. IMHO гораздо быстрее.
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24569 ответ на 24521 |
Чт, 7 сентября 2006 16:38 («] [#] [») |
|
|
Grey писал чт, 07 сентября 2006 16:37 | Sharky писал | Коровин где-то писал, что обмен 5 у него 2 сек на его супер компе. | Сомневаюсь. IMHO гораздо быстрее. | Ну не знаю, нужно сравнивать на одной машине. Тогда будет корректно.
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24570 ответ на 24521 |
Чт, 7 сентября 2006 16:40 («] [#] [») |
|
|
Так и не ответили в чем писать, или везде примерно одинаково?
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24571 ответ на 24521 |
Чт, 7 сентября 2006 16:43 («] [#] [») |
|
|
YuDmAk писал чт, 07 сентября 2006 16:40 | Так и не ответили в чем писать, или везде примерно одинаково? | В чем умеешь в том и пиши. Что толку если я скажу на АСМе? У меня кстати треть алгоритмов на нем и написано...
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24572 ответ на 24521 |
Чт, 7 сентября 2006 16:45 («] [#] [») |
|
|
ну ты и монстр, раз на асме умеешь. Снимаю шляпу.
Ок, пасибо всем. Начинаем работать.
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24573 ответ на 24521 |
Чт, 7 сентября 2006 16:46 («] [#] [») |
|
|
Потом отпишусь, что получилось
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24574 ответ на 24521 |
Чт, 7 сентября 2006 17:33 («] [#] [») |
|
|
Очень много писал на ассемблере под ДОС, 93-99 г. хобби такое было. Потом как-то рещил в дельфи переписать большие циклы, получилось ВДВОЕ дольше. После чего решил что компилятор больше меня понимает в программировании под винду и забыл про ассемблер, навсегда. В файле одно из моих творений, запускалось у сотрудниц при включении копмутера, в .dbf записывалисб отзывы.
|
Вложение:
mails.zip
(Размер: 1.32KB, Загружено 138 раз)
|
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24575 ответ на 24521 |
Чт, 7 сентября 2006 17:52 («] [#] [») |
|
|
Зачем же забывать ассемблер? Делфи прекрасно его понимает, пишешь
function Bla(Arg: Integer): Integer;
asm
// --> EAX - Arg
// <-- EAX – Result
и погнал
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24576 ответ на 24521 |
Чт, 7 сентября 2006 17:59 («] [#] [») |
|
|
Sharky писал | Зачем же забывать ассемблер? Делфи прекрасно его понимает, пишешь | А смысл? Сначала надо оптимизировать сам алгоритм до предела, а потом уже дожимать асмом. Если получится. Что вряд ли. Коровин прав, в дельфи очень мощный оптимизатор.
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24577 ответ на 24521 |
Чт, 7 сентября 2006 18:15 («] [#] [») |
|
|
Grey писал чт, 07 сентября 2006 17:59 | А смысл? Сначала надо оптимизировать сам алгоритм до предела, а потом уже дожимать асмом. Если получится. Что вряд ли. Коровин прав, в дельфи очень мощный оптимизатор. | Оптимизировать алгоритм, это само собой. И писать на асме процедуры нужно только в критических ко времени выполнения местах иначе разработка софта себя не окупит. А насчет оптимизатора, ни такой он и мощный, как хотелось бы. Почитай хотя бы это:
http://www.delphimaster.ru/articles/optimization.html
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24578 ответ на 24521 |
Чт, 7 сентября 2006 18:23 («] [#] [») |
|
|
Да ничего там особо криминального. Я таких примеров могу вагон привести. Это же не значит, что так надо писать и думать, что оптимизатор за тебя всю работу сделает.
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24579 ответ на 24521 |
Чт, 7 сентября 2006 18:35 («] [#] [») |
|
|
Ладно, у нас начинается оффтоп уже. Для подобных бесед существуют другие форумы... Я хотел самый быстрый перебор, надеюсь я таким его и сделал..
|
|
|
Re: Самое быстрое определение покерной комбинации ID:24580 ответ на 24521 |
Чт, 7 сентября 2006 23:35 («] [#] [») |
|
|
Korovin писал чт, 07 сентября 2006 17:26 | До 5 делается просто таблица 52^N, если 6-7 то 13^N используеш Адрес формируеш когда карту в руку кладеш, так что в самом вложеном цикле у тебя формируется ОДНА последняя цифыра адреса и одно образение к таблице. ВСЕ. как формировать флаг мастеой комбинации надеюсь сообразиш. | для N=7: 13^N = 62748517, каждая запись не меньше 7байт, итого таблица получается больше 440 МегаБайт. В оперативку такую махину не положишь, поэтому пришлось в файл на диске писать. Так вот одно считывание из фала занимает 0,000002 сек, что всего в 17 раз быстрее полной работы моего убогого алгоритма. В итоге, если дописать по намеченой схеме, то одно определение будет занимать по крайней мере больше 0,000002 сек, а значит файл на диске - это тупиковый вариант.
Господа! Подскажите куда его шить? Или я саму подсказку Коровина в корне не правильно понял?
|
|
|