Перейти к основному содержанию
CalcMax

Генератор случайных имён

Диапазон: 1 – 200

Диапазон: 0 – 4 294 967 295

Результат

6, 1, 5

Выпавшие имена

Имён в списке
8
Вероятность выпадения одного имени
37,50 %

Этот генератор случайных имён выбирает имена из списка, который вы вставляете, без повторов и при одном и том же зерне даёт один и тот же результат при каждом запуске. Вставьте список участников — по одному имени в строке или через точку с запятой, — укажите, сколько имён вытянуть, и страница вернёт ровно столько различных имён вместе с размером списка и шансом, который было у каждого имени. Это механизм, стоящий за такими задачами, как розыгрыш лотереи, вручение призов, порядок выступлений, схема рассадки или распределение дежурств: список — вход, раздача — выход, а числа рядом позволяют описать случившееся, а не просто заявить о нём. Два свойства стоит назвать прямо. Выбор идёт без повторов, поэтому ни одно имя не может появиться в одном результате дважды, и у всех имён одинаковый шанс: число вытянутых, делённое на размер списка, то есть при трёх из восьми каждое имя получает 37,5 %. И результат воспроизводим — именно это делает опубликованную раздачу проверяемой, а не просто заявленной.

Формула

P(данное имя вытянуто) = drawCount / nameCount а сама раздача — это перемешивание по зерну, из которого берут первые drawCount имён

nameCount
Сколько имён содержит список после разбиения. Разделители — перевод строки, точка с запятой и запятая; пробел разделителем не является, поэтому имя с пробелом внутри остаётся одной записью, а нумерованный список, набранный через пробелы, схлопывается в одно имя
drawCount
Сколько имён взять. Оно не может превысить размер списка, потому что выбор идёт без повторов: взять четыре имени из списка в три — не маловероятный исход, а невыполнимая просьба
seed
Начальное состояние генератора, до 4 294 967 295. Один и тот же список, число и зерно всегда дают одни и те же имена, и именно поэтому опубликованный результат можно прогнать заново и проверить; смените зерно — и вся раздача станет другой
drawCount / nameCount
Это шанс выпадения имени, то есть вероятность, что выйдет любое конкретное имя из списка. Это не обещание насчёт одной раздачи — имя с шансом 37,5 % может не выпасть десять раз подряд, — но на длинной серии независимых раздач доля тех, в которые имя попало, сходится к этому числу
picked
Вытянутые имена в том порядке, в котором их дала раздача, через запятую. Порядок — часть вывода, а не оформительское решение: одно и то же зерно воспроизводит один и тот же порядок, поэтому его можно использовать и для порядка выступлений, и для списка от первого к последнему

Берите его всюду, где нужна видимая и защитимая раздача, а справедливость должна быть проверяема после: выбрать победителя, определить порядок, распределить задачи, остановиться на одном из нескольких вариантов. Зерно и отличает это от непрозрачной кнопки «случайно»: опубликуйте зерно вместе с результатом — и любой сможет воспроизвести ту же самую раздачу, так что спор о честности выбора становится вопросом арифметики, а не доверия. Две вещи стоит держать в голове при выборе настроек. Вытягивайте весь список, когда важен полный порядок, а не подмножество: выбор всех имён — то же самое, что перемешивание, и вывод становится порядком выступлений. И проверяйте список, который страница, по её мнению, получила, прежде чем доверять раздаче: число рядом с результатом — это количество действительно разобранных записей, и это самый быстрый способ поймать разделитель, разбивший список не так, как вы ожидали. Ради этого здесь и есть поле зерна: воспроизводимый розыгрыш и делает выбор имён без повторов проверяемым.

Разобранные примеры

  1. Три имени из восьми

    1. Список разбивается по точкам с запятой на восемь записей
    2. Раздача по зерну берёт три из них без повторов: 6, затем 1, затем 5
    3. У каждого имени шанс был одинаков: 3 / 8 = 0,375, то есть 37,5 %
    4. Повторный запуск той же раздачи с зерном 1 вернёт те же три имени в том же порядке

    Смотреть здесь надо прежде всего на число 8, а не на три имени. Это страница сообщает, сколько записей она действительно разобрала, и это самая быстрая проверка того, что список разбился так, как вы задумали: список, молча ставший одной записью, всё равно выдаёт уверенный на вид результат. Число 37,5 % — это шанс каждого имени по отдельности, а не накопленный итог: восемь из них дают в сумме 300 %, потому что вытягиваются три имени и каждое вытягивание предъявляет списку отдельную заявку.

  2. Имена с пробелами внутри

    1. Каждое имя стоит на своей строке, поэтому в списке четыре записи, а не восемь
    2. Раздача берёт две из четырёх: Mary Jane и Peter Parker
    3. Шанс каждого имени равен 2 / 4 = 50 %
    4. Те же четыре имени, записанные как John Smith; Mary Jane; Peter Parker; Bruce Wayne, дают тот же результат

    Четыре записи вместо восьми — в этом весь смысл: пробел на этой странице имена не разделяет, потому что в настоящих именах он встречается. Разделяют точка с запятой и перевод строки, и любая из этих форм при одном и том же зерне даёт одну и ту же раздачу. Если число рядом с результатом окажется больше, чем число людей, которых вы вставили, значит список разбит слишком мелко, — а это случается, когда запятая внутри имени, записанного в порядке «фамилия, имя», срабатывает как разделитель.

  3. Вытягиваем весь список

    1. Восемь имён вытягиваются из списка в восемь, без повторов
    2. Каждое имя обязано выйти ровно один раз, поэтому результат — весь список в новом порядке
    3. Шанс любого данного имени равен 8 / 8 = 100 %, и это честное прочтение полной раздачи
    4. Порядок вывода — это порядок раздачи, поэтому он же служит перемешиванием

    Шанс в 100 % выглядит ошибкой, пока вопрос не прочитан внимательно: это шанс, что данное имя вытянут, когда вытягивают все имена, и о том, на какое место в порядке это имя попадёт, он не говорит ничего. Это та настройка, которую берут, когда нужен перемешанный порядок выступлений, а не подмножество: один и тот же вывод служит обеим целям, и порядок так же воспроизводится из зерна, как и всё остальное на странице.

  4. Числа, набранные через пробелы, прочитаны как одно имя

    1. Пробел на этой странице не разделитель, поэтому в списке ровно одна запись
    2. Выбор одного имени из списка в одно возвращает его без изменений
    3. Шанс равен 1 / 1 = 100 %
    4. Тот же список, переписанный через точки с запятой, даёт восемь записей и задуманную раздачу

    Так выглядит правило про пробел, когда оно кусается: восемь чисел, набранных через пробелы, — это одно имя, поэтому раздача возвращает эту единственную запись и сообщает число 1 и шанс 100 %. На панели ничего не выглядит сломанным, и именно поэтому на число рядом с результатом стоит бросать взгляд каждый раз. Лечится это разделителем, который не пробел: 1; 2; 3; 4; 5; 6; 7; 8 или по одному в строке.

Ограничения

Три практических предела стоит знать до того, как результат будет использован там, где это важно. Список вмещает до 200 имён, а раздача может взять не больше, чем в списке есть. Пробел имена не разделяет никогда, потому что в настоящих именах он есть, — разделители это перевод строки, точка с запятой и запятая, — поэтому запятая внутри имени, записанного в порядке «фамилия, имя», разобьёт его надвое, и число рядом с результатом будет единственным предупреждением. Зерно — устройство воспроизводимости, а не безопасности. Стоящий за ним генератор — маленький, быстрый и полностью детерминированный, из тех, что и уместны на такой странице: его совершенно достаточно для порядка стендапа или графика дежурств, и он не годится для розыгрыша, где на кону настоящие деньги, потому что там человек, знающий зерно и алгоритм, мог бы вычислить результат заранее, и правильным инструментом был бы проверяемый публичный источник случайности. И наконец, шанс — это не расписание. У каждого имени в списке одинаковая вероятность быть вытянутым, но шанс один из восьми не значит, что имя появится раз в восемь раздач: он значит, что на очень длинной серии независимых раздач доля сходится к одной восьмой, а это утверждение о длинной серии, а не о следующей попытке.

Частые вопросы

Раздача действительно случайна или она кому-то благоприятствует?
У каждого имени в списке одинаковый шанс, и страница вытягивает имена только без повторов, поэтому ни одно имя не может выйти в одном результате дважды. Проверить можно число рядом с результатом: оно сообщает, сколько записей страница разобрала, и если это число не совпадает с числом вставленных людей, значит список разбился не так, как вы задумали, и раздача честна не над тем множеством. Это, а не какая-то скрытая предвзятость, и есть обычная причина того, что раздача выглядит неправильной, — и поэтому вставлять список по одному имени в строке является самой надёжной привычкой.
Почему одно и то же зерно даёт одни и те же имена?
Потому что генератор детерминирован: зерно задаёт его начальное состояние, а дальше последовательность фиксирована. Это свойство, а не ограничение, ведь оно превращает заявление о честности в то, что любой может проверить: передайте список, число вытянутых и зерно — и тот же результат вернётся на любом устройстве, на любом языке, без всякой сохранённой истории. Другое зерно даёт совершенно другую раздачу, поэтому если нужен свежий результат без изменения списка, меняйте именно это одно число. Тот же детерминизм объясняет и то, почему это неудачный выбор для розыгрыша, где кто-то мог бы заранее узнать результат и им воспользоваться.
Шанс один из восьми значит, что имя выпадет раз в восемь раздач?
Нет, и это самое частое неверное прочтение любой вероятности. Шанс один из восьми значит, что на очень длинной серии независимых раздач доля тех, в которые попало это имя, установится около одной восьмой, но любая конкретная серия может не содержать его много раз подряд или содержать дважды кряду. Восьми раздач слишком мало, чтобы это среднее имело хоть какую-то силу. Число всё равно полезно — именно оно делает два имени сопоставимыми и говорит, что при вытягивании четырёх из восьми у каждого имени шанс 50 %, — но это утверждение о длинной серии, а не расписание.
Почему мой список чисел прочитан как одно имя?
Потому что пробелы на этой странице имена не разделяют. В большинстве настоящих имён есть пробел, поэтому трактовка пробела как разделителя разбила бы John Smith надвое, а правило, сохраняющее имена целыми, — то же самое правило, которое схлопывает 1 2 3 4 5 6 7 8 в одну запись. Число рядом с результатом это и показывает: там будет 1 вместо 8, а шанс будет 100 %. Лечится это разделителем, который не пробел, — точки с запятой, запятые или по одной записи в строке, — и любая из трёх форм при одном и том же зерне даёт одну и ту же раздачу.
Может ли одно и то же имя выпасть дважды?
В одной раздаче — нет. Имена изымаются из списка по мере выбора, поэтому каждый результат — это набор различных имён, чего и требует лотерея или порядок выступлений: объявить одного человека дважды было бы ошибкой, а не неожиданностью. Одно следствие стоит знать: число вытянутых не может превысить размер списка — просьба о четырёх именах из списка в три описывает процедуру, которую нельзя выполнить, и страница говорит об этом, а не молча возвращает три. Вытяните столько, сколько вмещает список, — и результат будет всем списком в новом порядке.
Почему на этой странице нет таблицы или списка примеров раздач?
Потому что результат целиком зависит от имён, которые вы вставите, и от выбранного числа, а таблица не видит ни того, ни другого. Напечатанный набор примеров раздач был бы результатом для какого-то другого списка, а там, где он разошёлся бы с панелью над ним, права была бы панель: страница, спорящая сама с собой, хуже страницы, на которой нет ничего лишнего. Панель уже и есть ответ, а два числа рядом с ней — единственные общие факты, которые здесь стоило бы сводить в таблицу: сколько записей в списке на самом деле и какой шанс был у каждой из них.

Источники

Похожие калькуляторы