Как разделить список на более мелкие списки, чтобы шансы одного элемента на другой элемент были равномерно распределены? - PullRequest
1 голос
/ 26 апреля 2011

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

Проблема в том, что при (наивном) случайном выборе один человек должен сражаться с одним человеком больше, чем с другим. То есть Два элемента часто оказываются в одной группе.

Я хотел бы сделать это более справедливым, чтобы для заданного числа участников, размера группы (не все группы имели одинаковый размер) и количества раундов алгоритм находил достаточный набор групп за раунд, так что в среднем каждый участник имеет одинаковые шансы встретить одного и того же участника во время раундов.

Есть ли литература по этой теме, которую я могу проконсультировать? Или какие-нибудь известные алгоритмы?

Ответы [ 2 ]

1 голос
/ 27 апреля 2011

Вы попадаете в тему, которая была исследована в комбинаторике, но на самом деле создание этих дизайнов на удивление сложно.См. http://en.wikipedia.org/wiki/Block_design для примера того, о чем вы хотите узнать больше.Если вам нужна помощь, я советую спросить https://math.stackexchange.com/, потому что вы с большей вероятностью найдете человека, который помнит этот материал.(Мне не приходилось смотреть на это в этом тысячелетии, иначе я бы сказал что-то более полезное.)

0 голосов
/ 26 апреля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...