Разбить группу из 100 людей по 5, чтобы все перезнакомились?

Всем добрый день.
Собственно пытаюсь написать алгоритм, чтобы разбивал n людей в группы по 5 человек, чтобы все n перезнакомились друг с другом... Первый круг из пятерок где ни кто не знает ни кого сделал, а вот дальше, как разбивать?
  • Вопрос задан
  • 720 просмотров
Пригласить эксперта
Ответы на вопрос 2
rpsv
@rpsv
делай либо хорошо, либо никак
Как раз для таких ситуаций нужно образование)))) https://ru.wikipedia.org/wiki/Комбинаторика
За основу возьмите https://ru.wikipedia.org/wiki/Сочетание
-
И в постановке наверное пропущено условие типа "за меньшее количество итераций", нет?
Ответ написан
hint000
@hint000
у админа три руки
Используйте силу простые числа, как инкремент номеров участников в группе.
5: (1,6,11,16,21), (2,7,12,17,22),..
7: (1,8,15,22,29), (2,9,..),..
11: (1,12,23,34,45), (2,13,..),..
13: ...
17: ...
(плюс зацикливание нумерации: 101=1, 102=2,..)
Доказательство не приведу, пока просто "математическая интуиция".
Оценка снизу: меньше чем за 25 разбиений решения не существует, т.к. каждый должен познакомиться с 99 людьми, а за одно разбиение человек знакомится максимум с 4 людьми, ceil(99/4)=25.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы