Алгоритм определения наивысшей и минимально возможной конечной позиции команды в лиге

Не уверен, что это подходящий вопрос для SO, но здесь идет:

Меня интересует необходимая логика, необходимая для расчета максимально возможного конечного положения команды в лиге.

Возьмите, например, английскую премьер-лигу. В этой лиге 20 команд. Каждая команда проводит каждую другую команду в лиге один раз дома. Это означает, что каждая команда дважды играет друг с другом (один раз дома и один раз), и поэтому будет играть 38 игр в сезон.

Игра может закончиться одним из трех результатов - домашней победой, ничьей или победой в гостях. Командам присуждаются 3 очка за победу и одно очко за ничью. Это означает, что максимальное количество очков, которые команда может достичь за один сезон, составляет 114 (38 * 3).

В нижней части нынешнего года таблица Премьер-лиги выглядит так (позиция, название команды, сыгранные игры, разность мячей [забитые голы - пропущенные голы], очки):

Premier League as at 14/5/13

Я хочу знать самые высокие и минимальные конечные позиции в Ньюкасле.

Было бы разумно думать, что самая низкая финишная позиция в Ньюкасле в этом сезоне будет 18-м, как если бы Ньюкасл проиграл оставшуюся игру, а все команды под ними (за исключением QPR и Reading, которые не могут поймать Ньюкасл) выиграть их игры, то их количество очков будет выше, чем Ньюкасл (Уиган будет таким же, но тот факт, что у них будет две победы, а "Ньюкасл" будет иметь одну потерю, будет означать, что Уиган будет иметь превосходную разницу в цели (механизм для разделения команд, которые находятся на равных точках]).

Однако - (и это сложный бит) - финальная игра Астон Вилла в сезоне против Уигана. По этой причине обе команды не могут получить максимальные очки.

Итак, мой вопрос - это лучший способ точно определить наивысшее и минимально возможное место отделки данной команды в лиге, принимая во внимание оставшиеся снаряды соперничающих команд? Должен ли я просто посмотреть на каждый оставшийся прибор и рассчитать каждую перестановку? Или есть более умный способ сделать это?

Ответ 1

Вы можете уменьшить количество комбинаций, игнорируя нерелевантные.

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

При рассмотрении наименьшей возможной позиции команды, которые впереди, не имеют значения.

Также команды, которые не могут получить достаточное количество очков для достижения Ньюкасла в оставшихся играх, не имеют значения.

Для остальных команд рассмотрите каждую игру против неуместной команды, как выиграли.

Вышеупомянутый шаг может сделать больше команд неуместными. Если это так, повторите предыдущий шаг!

Перетащите оставшиеся игры, т.е. игры, где соответствующие команды сталкиваются друг с другом.