Обновлено:

Случайное трехзначное число

В программировании, тестировании или простых играх часто требуется получить случайное трехзначное число. Например, для генерации кодов подтверждения, PIN-кодов, идентификаторов или случайных значений в симуляторах. В JavaScript это делается с помощью метода Math.random() и простых математических операций.

Онлайн-генератор трехзначных чисел
Целый режим повторяет классическую формулу из статьи.
Можно получить одно число или целую выборку до 900 значений.
Только целые трехзначные значения через запятую, пробел или новую строку.
По умолчанию используется формула Math.floor(Math.random() * 900) + 100.
Текущий диапазон и логика
Базовый диапазон
Доступно сейчас
Источник случайности
Формула
Повторы
Остаток серии
Доступны все 900 целых трехзначных чисел.
Последняя выборка При копировании дробные значения сохраняются в формате JavaScript с точкой.
История текущей сессии
    JavaScript-код под ваши настройки
    Короткая памятка по диапазону 100–999
    • Трехзначные целые числа занимают диапазон от 100 до 999 включительно.
    • Количество вариантов для целых чисел: 999 − 100 + 1 = 900.
    • Базовая формула в JavaScript: Math.floor(Math.random() * 900) + 100.
    • Math.random() подходит для обычных интерфейсов, тестов и игр, но не для безопасности.
    • Для секретных кодов лучше использовать crypto.getRandomValues().

    Трехзначное число – это целое число в диапазоне от 100 до 999. Всегда состоит из трех цифр, где первая цифра (сотни) не равна нулю. Случайное трехзначное число – любое число из этого диапазона, выбранное непредсказуемым образом.

    Как получить случайное трехзначное число в JavaScript?

    Основной инструмент – метод Math.random(). Он возвращает псевдослучайное число с плавающей точкой от 0 (включительно) до 1 (не включительно). Чтобы получить нужный диапазон, используется формула.

    Формула для целых чисел от 100 до 999

    function getRandomThreeDigitNumber() {
      return Math.floor(Math.random() * 900) + 100;
    }
    

    Разберем формулу:

    1. Math.random() – генерирует число от 0 до 0.999999…
    2. * 900 – расширяет диапазон до 0–899.999…
    3. Math.floor() – округляет вниз до целого числа, получаем 0–899.
    4. + 100 – сдвигает диапазон: 0+100=100, 899+100=999.

    Результат – случайное целое число от 100 до 999 включительно. Эта функция – основа для большинства задач.

    Почему умножение на 900?

    Диапазон трехзначных чисел включает 900 вариантов: от 100 до 999. Расчет количества: 999 – 100 + 1 = 900. Метод Math.random() никогда возвращает 1, поэтому Math.floor(Math.random() * 900) дает числа от 0 до 899. Добавив 100, получаем конечный диапазон.

    Генерация трехзначного числа с дробной частью

    Иногда требуется не целое число, а значение с десятичными знаками – например, 345.67. Для этого не используем Math.floor().

    function getRandomThreeDigitFloat(decimalPlaces = 2) {
      const random = Math.random() * 900 + 100; // Диапазон 100–999.999...
      return Number(random.toFixed(decimalPlaces)); // Ограничиваем знаки после запятой
    }
    // Примеры
    console.log(getRandomThreeDigitFloat(2)); // Например, 567.89
    console.log(getRandomThreeDigitFloat(0)); // Целое число, аналогично предыдущей функции
    

    Метод .toFixed(N) округляет число до N знаков после запятой и возвращает строку. Number() или parseFloat() преобразует ее обратно в число.

    Как исключить определенные числа при генерации?

    Если нужно, чтобы генератор никогда выдавал, например, число 123 или 456, создайте массив допустимых значений.

    // Создаем массив всех трехзначных чисел от 100 до 999
    const allThreeDigitNumbers = [];
    for (let i = 100; i <= 999; i++) {
      allThreeDigitNumbers.push(i);
    }
    
    // Удаляем нежелательные числа
    const excluded = [123, 456, 789];
    const allowedNumbers = allThreeDigitNumbers.filter((num) => !excluded.includes(num));
    
    // Функция для выбора случайного числа из разрешенного списка
    function getRandomExcluded() {
      const randomIndex = Math.floor(Math.random() * allowedNumbers.length);
      return allowedNumbers[randomIndex];
    }
    

    Этот подход гарантирует, что исключенные числа никогда не появится. Однако для диапазона 900 чисел он эффективен, для большего – может быть медленным.

    Где используется случайное трехзначное число?

    Практические применения:

    • Коды подтверждения и PIN: короткие числовые коды для SMS, email или временных паролей.
    • Идентификаторы заказов или транзакций: простые числовые ID, например, #453.
    • Игры и симуляции: броски виртуальных кубиков с трехзначными результатами, случайные значения в экономических моделях.
    • Тестирование: заполнение полей формы случайными данными, проверка валидации полей.
    • Обучение: генерация примеров для математических задач.

    Как получить несколько неповторяющихся чисел?

    Если нужно несколько уникальных трехзначных чисел, есть два способа.

    Для небольшого количества чисел (например, 5–10):

    const usedNumbers = new Set(); // Хранит уже использованные числа
    function getUniqueRandomThreeDigit() {
      let num;
      do {
        num = Math.floor(Math.random() * 900) + 100;
      } while (usedNumbers.has(num)); // Генерируем новое, если число уже было
      usedNumbers.add(num);
      return num;
    }
    

    Метод может стать медленным, если нужно получить много чисел (близко к 900), потому что вероятность повторения возрастает.

    Для получения всех 900 чисел в случайном порядке:

    // Создаем и перемешиваем массив всех чисел от 100 до 999
    const allNumbers = Array.from({ length: 900 }, (_, i) => i + 100);
    // Алгоритм shuffling (Fisher-Yates)
    for (let i = allNumbers.length - 1; i > 0; i--) {
      const j = Math.floor(Math.random() * (i + 1));
      [allNumbers[i], allNumbers[j]] = [allNumbers[j], allNumbers[i]];
    }
    // Теперь allNumbers – массив всех трехзначных чисел в случайном порядке
    

    Это гарантирует, что каждое число будет использовано один раз.

    Что делать, если нужна криптографическая безопасность?

    Math.random() не предназначен для криптографических задач (генерация паролей, токенов безопасности). Он использует псевдослучайный алгоритм. Для безопасной генерации используйте Web Cryptography API.

    // Генерация криптографически стойкого случайного трехзначного числа
    async function getSecureRandomThreeDigit() {
      const array = new Uint16Array(1); // Создаем массив для одного 16-битного числа
      await window.crypto.getRandomValues(array); // Заполняем безопасными случайными значениями
      const randomValue = array[0] % 900; // Получаем число от 0 до 899
      return randomValue + 100; // Сдвигаем к диапазону 100–999
    }
    

    Этот метод гораздо медленнее, но подходит для систем, где важна непредсказуемость.

    Частые ошибки и их решение

    Ошибка 1: числа от 0 до 999 вместо 100–999

    // Неправильно: Math.floor(Math.random() * 1000) -> диапазон 0–999
    // Правильно: Math.floor(Math.random() * 900) + 100 -> диапазон 100–999
    

    Убедитесь, что первая цифра не нуль.

    Ошибка 2: забывают включить верхнюю границу Math.random() * 900 дает максимум 899.999. Math.floor() делает 899. +100 дает 999. Верхняя граница включена.

    Ошибка 3: нецелые числа, когда нужны целые Если нужны целые числа, всегда используйте Math.floor(), Math.round() или Math.ceil() в зависимости от задачи. Для диапазона 100–999 Math.floor() – правильный выбор.

    Калькулятор выше позволяет получить случайное трехзначное число без написания кода. Вы можете использовать его для быстрой генерации или проверки логики.

    Часто задаваемые вопросы

    Что такое трехзначное число в контексте генерации?

    Трехзначное число – это целое число от 100 до 999 включительно. Оно всегда состоит из трех цифр, первая цифра не может быть нулем.

    Как получить случайное трехзначное число в JavaScript?

    Используйте функцию: Math.floor(Math.random() * 900) + 100. Math.random() дает число от 0 до 1, умножение на 900 дает диапазон 0–899.999, floor делает целым (0–899), прибавление 100 дает 100–999.

    Можно ли генерировать трехзначные числа с десятичными знаками?

    Да. Используйте формулу: (Math.random() * 900 + 100).toFixed(N), где N – количество знаков после запятой. Например, .toFixed(2) даст число типа 456.78.

    Как исключить определенные трехзначные числа при генерации?

    Создайте массив допустимых чисел (например, от 100 до 999, но без 123, 456). Затем выберите случайный элемент из этого массива с помощью Math.floor(Math.random() * array.length).

    Почему Math.random() не подходит для криптографии?

    Math.random() генерирует псевдослучайные числа по алгоритму. Они предсказуемы при известном начальном значении. Для безопасности используйте Web Crypto API.

    Как гарантировать, что числа не повторяются?

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

    1. Random случайные числа онлайн – генератор и примеры
    2. Рандомный код: генерация случайных чисел в JavaScript
    3. Массив случайными числами: как создать в JavaScript
    4. Случайное число от 0: формулы и генератор на JavaScript
    5. Рандомный день – международный праздник генератора случайных чисел
    6. Случайное натуральное число: генерация и формулы