Во время просмотра регби прошлой ночью мне было интересно, если какие-либо оценки были невозможны, учитывая, что вы можете набирать очки только в лотах 3, 5 или 7. Понадобилось немного времени, чтобы понять, что любое число больше 4 достижимо.5 = 5, 6 = 3 + 3, 7 = 7, 8 = 3 + 5, 9 = 3 + 3 + 3, 10 = 5 + 5 и т. Д.
Продолжая эту идею для 5,7 и 9 дают следующие возможные оценки:
5,7,9,10,12,14 // and now all numbers are possible.
Для 7, 9 и 11:
7,9,11,14,16,18,20,22,23,25,27 // all possible from here
Я сделал это в своей голове, может кто-нибудь предложить хороший алгоритм, который определитнаименьший возможный балл, выше которого все баллы достижимы при заданном наборе баллов.
Я смоделировал это следующим образом:
forall a < 10:
forall b < 10:
forall c < 10:
list.add(3a + 5b + 7c);
list.sort_smallest_first();
Затем проверьте список на последовательность длиннее 3 (наименьшееоценка возможна).Кажется довольно непрактичным и медленным для всего, кроме тривиального случая.