Цитата (c00l0ne @ 25.12.2019)
поэтому будем продолжать искать сет
то есть, то что я и говорил. Ты ищешь не все комбинации, а только сеты. К тому же ты знаешь, что два фула(18 очков) бьются только сетом...всё это лишняя возня, которая не факт, что окупится при производительности 1кк/с полного перебора. преф. дерево даёт комбинацию за 5 запросов, максимум что можно сэкономить при твоём подходе - сравнение комбинации на старшинство. То есть, создав поддерево из сетов, мы гарантировано знаем, что там будут "находиться" комбинации "сет". И что экономится? Одно побитовое сравнение?
Другое дело, что можно составить дерево фантазий(!) и искать сверху вниз по нему.
То есть на вершине будет 999\роял\роял\, потом 888\роял\роял\, потом ААх\роял\роял\
и т.д. с 70 очков до 0.
Тогда первая же находка и составит максимум для этого набора из 14 карт
и идти по нему будет очень весело: нет 999 - дальше, нет АА - дальше...
ну, а это дерево можно построить, подав 52 карты на вход
2 Аll
Тоже надо на работу. Так что до выходных.
ну допустим мы нашли два фула в лайны
фулл первый +6 очков фулл второй +12 очков ...
мы можем побить этот вариант только сетом наверху ... поэтому будем продолжать искать сет наверх и имеет смысл посмотреть комбу в середину и сет наверх и имеет смысл посмотреть комбу вниз + комбу в середину и сет наверх ...
зачем нам продолжать искать фулл + две пары + пара наверх ... или фулл + сет + пара наверх ... ни один такой вариант не побьет роялти двух фулов ... это называется оптимизация алгоритма ... мы парочкой условий выкидываем тонну работы для проца ... и сразу сокращаем кол-во вариантов ... до н штук ...
поэтому не найдя комбу в середину + сет наверх сразу отправляемся в п.1 искать комбу вниз + середину + сет наверх...
если не находим то два фула лучший вариант ... линейные алгоритмы просты но очень объемны ... а в связке с рекурсией это оч мощная вещь ...
я говорил что алгоритм будет оч сложный придется попотеть ... но все в рамках рабочего момента...
ответ выше )
пс ладно рабочий день к концу подходит ... я офф
пс2 такой алгоритм даст >100 фант в секунду)