Статья Автор: Лебедев Дмитрий

TUZ_5-14. Наилучший результат из нескольких бросков в игре в кости «Скала»

TUZ_5-14. Наилучший результат из нескольких бросков в игре в кости «Скала»

TUZ_5-14. Наилучший результат из нескольких бросков в игре в кости «Скала»
5.14. Наилучший результат из нескольких бросков в игре в кости «Скала»
Эта задача похожа на предыдущую, только вместо одного броска выполняется несколько бросков, для каждого из которых
подсчитывается количество набранных очков, причем одна и та же комбинация не может повторяться два и более раз.
Ваша задача: написать функцию, которая принимает результаты нескольких бросков и возвращает максимальное набранное количество очков.
Если количество бросков равно нулю, то функция должна вернуть ноль.
В табл. 5.14 показаны ожидаемые результаты для некоторых входных данных.
Таблица 5.14. Некоторые ожидаемые результаты для задачи определения наилучшего результата из нескольких бросков в игре в кости «Скала»
Rolls Ожидаемый результат
(3, 3, 3), (2, 5, 5), (1, 5, 6), (2, 3, 3) 47
(1, 4, 6), (2, 3, 5), (1, 5, 1) 14
(1, 1, 1), (4, 3, 6) 51

Алгоритм
Алгоритм тот же, что и в предыдущем задании, но есть некоторые важные отличия: на входе принимается несколько бросков.
На первом шаге этот алгоритм генерирует комбинации для заданного числа бросков.
Затем он перебирает комбинации и оценивает каждую из них с учетом правил. Правила оценки приведены в предыдущем разделе.
Список category_is_ used используется для отслеживания того, какие правила уже применялись к текущей комбинации.
Если правило уже было применено, его нельзя использовать снова для текущей комбинации.
В завершение алгоритм возвращает наибольшую из оценок в заданной серии бросков.


Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать