Чего я надеюсь достичь, так это способности генерировать «команды» пользователей. У меня будет x
количество мужчин, взвешенное (десятичный вес навыка, например 75.23
) и y
количество женщин (также со значением веса навыка).
Учитывая этот список пользователей, я бы взял для ввода количество команд (скажем, 6 команд). Затем я просматриваю список «х» и «у» и систематизирую их так, чтобы создавались наилучшие средневзвешенные команды. Я бы хотел сохранить баланс команд (соотношение мужчин и женщин)
Я не хочу, чтобы «сложенные» команды (лучшие в одной команде). Я бы хотел равномерное распределение веса.
Любопытно, как я мог добиться этого в PHP? Я бы использовал базу данных MySQL для получения пользователей со значениями веса. Я бы заранее знал, сколько у меня будет пользователей, а также сколько команд я бы хотел создать.
Буду признателен за любые предложения или ссылки на решение, если кто-нибудь найдет что-то подобное. Я просто не математик, поэтому я не знаю, какая здесь формула.
Спасибо. Я ценю любой вклад!
EDIT
После рассмотрения ответов, возможно, я не достаточно ясно понял, так что, надеюсь, это поможет немного больше.
- Я хочу, чтобы команды были примерно одинакового размера
- Я хочу, чтобы средний (средний) показатель квалификации для каждой команды был примерно равен
- Я хочу, чтобы соотношение мужчин и женщин в каждой команде было примерно одинаковым (то есть, если по дивизионам мы получим распределение, 5 мужчин и 3 женщины на команду, я хотел бы сохранить это примерно так же). На самом деле не проблема, если я сначала сортирую мужчин, а потом женщин (или наоборот).
- Мне не нужен линейный подход (команда 1 получает наивысшую оценку, команда 2, наивысшая секунда, команда 3 ... и так далее). Кажется, что у Тима метод взятия (если 6 команд) 6 человек и рандомизации, а затем распределения по линейному принципу, работает хорошо.