Использование JavaScript/jQuery для создания фикстур

Я собираю инструмент для коллеги, который помогает создать хороший список приспособлений. Я прошел около 2/3 через инструмент, собирая различные данные... и тут я наткнулся на кирпичную стену. Это не столько проблема с JavaScript, сколько блокировка мозга по математике/обработке.

Допустим, у меня есть 4 команды, и всем им нужно играть друг с другом дома и на выезде. С помощью этого инструмента — http://www.fixturelist.com/ — я вижу, что дома и вдали матч с 4 командами займет 6 недель/раундов/что-то еще. Однако для жизни я не могу понять, как это было разработано программно.

Может ли кто-нибудь объяснить логику обработки этого?

Для информации я бы использовал этот существующий инструмент, но есть другие факторы/функции, с которыми мне нужно работать, поэтому я выполняю пользовательскую работу. Если бы я только мог понять, как представить эту логику!


person Lloydi    schedule 22.09.2009    source источник


Ответы (1)


В вашем примере из 4 команд назовите их a, b, c и d:

  • a должен играть b, c, d
  • b должен сыграть c, d (игра против a, уже включенная в игры a)
  • c должен сыграть d (игра против a, уже включенного в игры a, против b, уже включенного в игры b)

Если им нужно играть дома и на выезде, то это 12 игр. Вы можете играть максимум 4/2 = 2 игры в неделю, так что это 6 недель.

С n командами вам нужно x игр, где:

x = ((n-1 + n-2 + n-3 ...) * 2)

Это занимает y недели, где:

y = x/(n/2) = 2x/n

Это можно довольно легко упростить с помощью арифметического ряда или вычислить с помощью цикла for, если хотите.

person Dominic Rodger    schedule 22.09.2009
comment
Спасибо за это. Формула имеет смысл, и я заставил ее работать на странице соответствующим образом - выписывает правильное количество недель и правильное количество общих игр, в зависимости от того, выбираю ли я дома или на выезде из одиночных игр. Но теперь я столкнулся с еще одним препятствием в разработке логики для фактического построения графика каждую неделю, кто кого играет, чтобы охватить каждую перестановку. Я попытаюсь разобраться в этом, но, возможно, снова попрошу о помощи! Большое спасибо за это. Очень признателен - person Lloydi; 23.09.2009
comment
@Lloydi - да, я собирался упомянуть, что это может быть головной болью! Я думаю, что y — это нижняя граница количества отработанных недель при оптимальном порядке игр. Я буду следить за любыми вопросами от вас - мне очень понравился этот! - person Dominic Rodger; 23.09.2009
comment
Я собираюсь обдумать это... посмотреть, не всплывет ли этот подход волшебным образом в моей голове во время прогулки с собакой. Если бы только этот пример сайта не использовал PHP для создания фиксов. Серверный код, да? Пффф ;-) Думаю, я все равно загружу файл для информации. Должен сказать, впервые использую Stack Overflow, и мне действительно нравится, как это работает :-) Действительно хороший ресурс для разработчиков. - person Lloydi; 23.09.2009
comment
@Lloydi - рад, что вам понравилось - это было очень полезно для меня (не только как ресурс для получения ответов на мои вопросы, но и как место, где можно порезать зубы, помогая другим людям). - person Dominic Rodger; 23.09.2009