Разделить на команды онлайн
Случайно и честно разделите участников на команды. Вставьте список, укажите число команд — рандомайзер равномерно распределит людей.
Как работает деление на команды
В основе распределителя — криптостойкая функция random_int и алгоритм
перемешивания Фишера–Йейтса. Список участников случайно перетасовывается, а затем
люди по очереди раскладываются по командам. Такой способ гарантирует, что у каждого
участника равные шансы попасть в любую команду, а результат нельзя предсказать заранее —
это важно для честной жеребьёвки.
Где пригодится распределитель команд
- Спорт и игры — разбить игроков на команды для футбола, волейбола, настолок, квизов.
- Работа и учёба — случайное деление на группы для проектов, воркшопов, дебатов.
- Мероприятия — жеребьёвка команд на турнире, распределение по подгруппам.
- Детские праздники — быстро и без споров разделить детей на равные команды.
Как разделить список на команды
- Впишите или вставьте участников — по одному имени в строке.
- Укажите, на сколько команд разделить (2, 3, 4 и больше).
- Нажмите «Разделить на команды» — сервис покажет состав каждой команды.
Если участников не получается разделить поровну, разница между командами составит не больше одного человека. Дубликаты имён сохраняются — можно вписывать тёзок.
Как это устроено: алгоритм честного деления
Многие похожие сервисы перемешивают список функциями вроде rand()
или mt_rand() (алгоритм «Вихрь Мерсенна») — они быстрые, но не
криптографические: при определённых условиях последовательность можно
предсказать. Для жеребьёвки, от которой зависит реальный результат — турнир,
распределение задач, конкурс — этого недостаточно.
Мы используем random_int() — криптостойкую функцию PHP, которая
берёт данные из системного источника энтропии (тот же класс генераторов, что
применяется для паролей и ключей шифрования). Перемешивание — классический
алгоритм Фишера–Йейтса: он проходит список с конца и на каждом шаге меняет
текущий элемент местами со случайным из ещё не обработанных. Это единственный
способ, который математически доказанно даёт равновероятность всех
перестановок — в отличие от «сортировки по случайному компаратору», внешне
похожего, но статистически смещённого приёма. Вот реальный код с этой
страницы:
// Криптостойкое честное перемешивание (Фишер–Йейтс на random_int)
for ($i = count($shuffled) - 1; $i > 0; $i--) {
$j = random_int(0, $i);
[$shuffled[$i], $shuffled[$j]] = [$shuffled[$j], $shuffled[$i]];
}
// Равномерное распределение по кругу
foreach ($shuffled as $idx => $name) {
$teams[$idx % $teamCount][] = $name;
}
После перемешивания участники раскладываются по командам по кругу (остаток от деления индекса на число команд). Раз порядок уже случаен, такое распределение само по себе не добавляет смещения — и гарантирует, что разница в размере команд не превышает одного человека.
Другие инструменты рандомайзера
- Рандомайзер — генератор случайных чисел
- Случайный выбор из списка и выбор победителя
- Несколько случайных чисел из диапазона
Отзывы и комментарии
Войдите, чтобы оставить отзыв или комментарий
Я Войти через ЯндексПока нет комментариев. Будьте первым!