Я создал случайного создателя группы, но случайный не гарантирует, что вы работаете с людьми, с которыми вы ранее не работали. Если кто-то смог создать «Генератор случайных групп с историей», который отслеживал предыдущие группы и избегал добавлять людей в группы с одними и теми же людьми снова и снова, я бы определенно использовал его! Кто-нибудь знает как это сделать?Создать группы без повторения предыдущих группировок
Для ясности: Учитывая массив строк
["Jason", "Kim", "Callie", "Luke"]
и массив предыдущих спариваний (также массивы)
[[["Jason", "Kim"], ["Callie", "Luke"]], [["Jason", "Luke"], ["Callie", "Kim"]]]
обратные группировки с наименьшим количеством членов группы повторных
[["Jason", "Callie"], ["Luke", "Kim"]]
Я представляю, что число, которое я пытаюсь свести к минимуму, - это количество повторных партиций ERS. Поэтому для каждой пары из двух человек, каждый раз, когда они уже были в команде, если результат помещает их в одну команду, результат будет иметь такой же результат. Для Например, «скоринг» прибыть на возвращаемое значение может выглядеть следующим образом:
["Jason", "Kim"] have a score of 1, they have been paired together before
["Callie", "Luke"] have a score of 1, they have been paired together before
["Jason", "Luke"] have a score of 1, they have been paired together before
["Callie", "Kim"] have a score of 1, they have been paired together before
["Jason", "Callie"] have a score of 0, they have not been paired together before
["Luke", "Kim"] have a score of 0, they have not been paired together before
Выберите наборы, которые охватывают весь список, генерируя наименьший балл. В этом случае пары [«Jason», «Callie»] и [«Luke», «Kim»] охватывают весь набор и имеют оценку 0 (без повторных группировок) и, следовательно, это оптимальное решение (0 являющийся наилучшим возможным результатом).
Возможно, это неправильный способ сделать это (поскольку я предполагаю, что это займет n квадратов), но, надеюсь, это дает представление о том, для чего я пытаюсь оптимизировать. Это не должно быть идеальной оптимизацией, просто «достойный ответ», который не объединяет одни и те же группы каждый раз.
В идеале, он сможет обрабатывать любую группу размеров, а также иметь возможность справиться с тем, что кто-то может быть в тот день (не все люди будут во всех массивах). Мне бы очень понравился javascript-ответ, но я мог бы перевести, если кто-то может придумать логику.
добавьте некоторые мысли, как вы получите от второй линии к третьей строке, результат. –
вы можете искать взвешенную случайную выборку – burkay
@NinaScholz Надеюсь, что это поможет? Я попытался добавить более подробное объяснение этих шагов. –