Сначала отказ от ответственности.
Если ваш пользователь предложил это, есть две возможности.Либо они могут предоставить точные детали алгоритма, поэтому спросите их.Или они, скорее всего, не знают, о чем говорят, и просто генерируют частичную идею на месте, и в этом случае, к сожалению, в среднем она не стоит многого.
Итак, один из вариантов - поискать, каксватовство работает в других проектах, полностью игнорируя идею.Другое - изучить идею пользователя.Возможно, это не превратится в хорошую систему, но есть шанс, что так и будет.В любом случае, вам придется провести несколько экспериментов самостоятельно.
Теперь перейдем к случаю, когда вам будет весело исследовать эту идею.Во-первых, для разделения десяти элементов на две группы по пять есть , просто выберите (10,5) = 252 возможностей, поэтому, если системе не придется делать это миллионы раз в секунду, вы можете просто рассчитатьнекоторые баллы для всех из них, и выбрать лучший.Наиболее простой способ, возможно, состоит в том, чтобы рассмотреть все 2 ^ {10} = 1024 способов формирования подмножества из 10 элементов, а затем исследовать те, в которых размер подмножества равен 5. Но может быть лучше, больше-по пункт , инструменты легко доступны, в зависимости от языка или структуры.Комбинация 10-выбери-5 - это одна группа, не взятые предметы - другая группа.
Итак, каков будет результат комбинации?Теперь мы смотрим на наши предпочтения.
Для каждого удовлетворенного предпочтения мы можем добавить его вес, или его вес в квадрате, или иным образом, к баллу.То, что работает лучше всего, наверняка потребует экспериментов.
Аналогично, для каждого неудовлетворенного предпочтения мы можем добавить штраф в зависимости от его веса.
Далее, мы можем рассмотреть всех игроков и, возможно, добавить больше штрафа для каждого из игроков, который не выполнил ни одного из своих предпочтений.
Еще одна вещь, которую следует учитывать, это командный баланс.Поскольку до сих пор единственными данными являются предпочтения (которые могут оказаться недостаточными), дисбаланс означает, что одна команда удовлетворяет многим из своих предпочтений, а другая - лишь немногим, если вообще их имеет.Итак, мы добавляем еще один штраф в зависимости от абсолютной разницы (сумма удовлетворенности первой команды) и (сумма удовлетворенности второй команды).
Конечно, могут быть и другие вещис учетом ...
Основываясь на этом, создайте систему, которая, по крайней мере, выглядит правдоподобно на поверхности, а затем экспериментируйте и снова экспериментируйте, настраивая ее так, чтобы она лучше подходила для организации матчейцели.