Что делает этот инструмент
Генератор случайных целых чисел выдаёт список целых чисел, равномерно выбранных из заданного вами диапазона (границы включаются). «Равномерное распределение» означает, что каждое целое число от нижней до верхней границы имеет одинаковые шансы выпасть. Вы сами решаете, сколько чисел сгенерировать и может ли одно и то же значение появиться несколько раз. Инструмент пригодится для выбора лотерейных номеров, бросков костей и игровых ходов, выборки строк из набора данных, присвоения ID, разбиения пользователей по группам в A/B-тестах и наглядных примеров на уроках статистики.
Как пользоваться
Укажите нижнюю границу в поле «Диапазон от» и верхнюю в поле «до» (любое целое число от 1 до 100000). В поле «Количество» задайте, сколько чисел нужно (от 1 до 100). Выберите «Разрешить», чтобы допустить повторы (выборка с возвращением), или «Запретить» — чтобы все значения были разными (выборка без возвращения). Если вы случайно перепутаете границы местами, инструмент автоматически поменяет их в правильном порядке.
Как работает формула
Диапазон [lo, hi] содержит \(N = \text{hi} - \text{lo} + 1\) различных целых чисел. Одно значение вычисляется как
$$r = \text{lo} + \left\lfloor U \times N \right\rfloor$$где \(U\) — равномерно распределённое случайное вещественное число из интервала \([0, 1)\). Умножая \(U\) на \(N\) и округляя вниз, мы получаем целое число от 0 до \(N-1\), которое затем сдвигается вверх на \(\text{lo}\). Это гарантирует, что у каждого варианта вероятность ровно \(1/N\). Если повторы разрешены, инструмент независимо повторяет такое вычисление для каждого нужного значения. Если повторы запрещены, он продолжает выбирать числа и отбрасывает уже выбранные, пока не наберёт нужное количество уникальных значений; при этом количество не должно превышать \(N\).
Разбор примера
Диапазон от 1 до 6, количество — 5, повторы разрешены: каждое значение вычисляется как
$$r = 1 + \left\lfloor U \times 6 \right\rfloor$$и ведёт себя как бросок шестигранной кости. Возможный результат: 4, 1, 6, 4, 2 (четвёрка повторяется — это допустимо). Если повторы запрещены, вы получите пять разных значений, например 3, 5, 1, 6, 2. А запросить 7 разных значений из диапазона от 1 до 6 невозможно, потому что всего существует только шесть целых чисел.
Частые вопросы
Почему каждый раз получаются разные результаты? Генератор недетерминированный: при каждом запуске он выбирает новые случайные значения, поэтому результат меняется — так и задумано.
Могут ли нижняя и верхняя границы совпадать? Да. Если они равны, то \(N = 1\) и единственное возможное значение — это само это число.
Что будет, если запросить больше уникальных чисел, чем существует? В режиме «Запретить» инструмент выдаст ошибку, потому что различных целых чисел не хватает для выполнения запроса.