Я борюсь с алгоритмом, чтобы разделить группу участников на более мелкие группы, чтобы составить раунды. Возьмем для примера группу из 20 человек, которую я хочу разделить на 3 группы (7,7,6). Для каждого раунда в конкурсе группы различны, так что каждый должен сражаться со всеми остальными в довольно справедливом распределении.
Проблема в том, что при (наивном) случайном выборе один человек должен сражаться с одним человеком больше, чем с другим. То есть Два элемента часто оказываются в одной группе.
Я хотел бы сделать это более справедливым, чтобы для заданного числа участников, размера группы (не все группы имели одинаковый размер) и количества раундов алгоритм находил достаточный набор групп за раунд, так что в среднем каждый участник имеет одинаковые шансы встретить одного и того же участника во время раундов.
Есть ли литература по этой теме, которую я могу проконсультировать? Или какие-нибудь известные алгоритмы?