Цитата (БиллиУбили @ 8.1.2020)
однозначно за рекурсию. Или однозначно против.
рекурсия - красивее и писать быстрей, но работает медленней. линейно - дольше кодировать (писать много и муторно все расписывать, можно ошибок нечаянно наделать), но работать будет быстрей. еще самое важное: в начале за скоростью не гонись, сделай пусть медленно, но за то точно и без ошибок. потом будешь ускорять. если есть несколько вложенных циклов, самые важные внутренние, тут должно быть минимум операторов, нельзя делать никакой лишней ерунды. по максимуму постарайся в последнем внутреннем цикле убрать лишние операторы, тут каждая операция - супер время! все обращения к массивам постарайся сделать заранее.
Цитата (БиллиУбили @ 8.1.2020)
Находим максимальное число в таблице: пусть это будет рояль за 30 в мидл
чё ты уперся в рояль и каре? а если макс это будет флеш? так и будешь перебирать все комбы до двух пар?
в низу чаще всего бывает фулл или флеш. в мид соответственно флеш и стрит, 2 пары и пара. а ты сразу - допустим рояль в мид!!! ты его хрен дождешься в низ, а уж в мид вообще шансы стремятся к нулю.
Цитата (БиллиУбили @ 8.1.2020)
и максимальной сумма будет тогда, когда на каждой линии будет максим.очки для этой линии.
а вот это самая большая ошибка. найти макс на каждой линии - это плевое дело. все зависит от верхнего сета или крупной пары и выяснится, что лучше положить вниз не фулл, а стрит и в верх положить сет десяток (например), и угадать это нельзя. специально проверял это, у меня на случайной фанте кладу макс в низ и т.д. до верха по максимуму, потом пробую посмотреть в низ по-младше и собираю лучший вариант. и таких вариантов бывает 3!!!
3!!! КАРЛ!!почти со 100% вероятностью, макс комбу внизу вариант можно усилить до лучшего. плюс еще возможность повтора очень важна.
Цитата (БиллиУбили @ 8.1.2020)
Сейчас я повторяю его результат (60 фантазий за сек)
Пять лет прошло с тех времен...
Ради интереса посмотрел щас скорость расчета фанты в свете новых массивов и новых идей.
Сделал цикл 10000 = 10к!! случайных фантазий.
Для 17 карт - 90сек, 16 карт - 25сек, 15 карт - 6сек, 14 карт - 1,5сек (за 10к фантазий!!!)
. Сам офигел. И это все в один поток. Правда немного доработал алгоритм.
Т.е. для 16 карт - 400 фантазий в секунду. А для 14 - вообще
Братиш, то что ты написал...дай бог тебе изучить программирование...
2All
Под рекурсией я имел в виду следующее. Находим максимальное число в таблице: пусть это будет рояль за 30 в мидл. Можем положить(у нас есть рояль)? Кладём. Снова возвращаемся к рекурсии но у нас уже только 2 пустых боксах.
Теперь из таблицы для 2ух боксов мы снова ищем макс очки - это рояль внизу. Можем положить(у нас есть второй рояль)? Кладём. Не можем положить? Не кладём и выходим из обоих рекурсий, так как класть что либо младше рояля вниз нельзя, рука будет мёртвой.
Примечание. Здесь я использую тот факт, очки за руку = сумма очков за каждый бокс. соответственно, и максимальной сумма будет тогда, когда на каждой линии будет максим.очки для этой линии.
Так что буду делать по данной схеме
Единственно, что за фантазию надо давать "лишние" очки, кроме как 7 за QQ, 8 за КК
ЗЫ У темы 30к+ просмотров. Всем спасибо!