Главная » 2015 » Ноябрь » 12 » Как генерировать случайные числа в JavaScript
22:33
Как генерировать случайные числа в JavaScript

Как генерировать случайные числа в JavaScript

Случайные числа часто используются в таких случаях, как, например, ... неважно. Проблема с методом Math.random(), который мы будем использовать, состоит в том, что он генерирует длинное, практически бесполезное десятичное число вида 0.77180239201218795. Здесь вы узнаете, как использовать другие методы объекта Math для получения целого числа в заданном диапазоне.


В статье предполагается, что вы знакомы с HTML и JavaScript достаточно хорошо, чтобы следовать инструкциям статьи. Если же нет, существует множество сайтов, где вы можете пройти обучение. Приложив немного усилий, вы через некоторое время сможете вернуться к этой статье.

Шаги

  1. 1 Создайте простую страницу с тегами head, body и тому подобными. Откройте тег <script> в теле страницы и просто вызовите alert() для значения Math.random(). Например, можете написать alert(Math.random()) и сохраните страницу как файл .html для простоты ее использования.
  2. 2 Откройте страницу. Наслаждайтесь массой псевдослучайных чисел, которые вы создали! Полезно, правда? Возможно, нет, тогда что дальше?
  3. 3 переходим к целым числам. На данном этапе вам следует выбрать верхнюю границу диапазона. Сгенерированное число не превысит это значение. Давайте в этой статье используем значение 7. Все, что вам нужно сделать сейчас, это умножить сгенерированное случайное число на значение верхней границы диапазона. То есть, Math.random() * 7. Выведите значение с помощью alert() и взгляните на результат.
  4. 4 Итак, до сих пор много знаков после запятой? В жизни не так все просто. К счастью, JavaScript предоставляет еще один полезный метод объекта Math, который называется floor(). Этот метод округляет число до ближайшего меньшего целого значения (вниз). Обратите внимание на акцент на меньшее значение. Даже если дробная часть числа больше 0.5, floor() уменьшит это число. Строка кода в вашем скрипте теперь должна выглядеть примерно так Math.floor(Math.random() * 6). Снова проверьте результат выводы alert(). Попробуйте несколько раз. Вы получите результат в диапазоне of 0-6; но что если мы хотели 1-7?

  5. 5 Последний шаг. Теперь пришло время установить нижнюю границу диапазона. Это можно сделать, просто прибавив значение нижней границы диапазона. Чтобы это доступно объяснить, мы можем изменить наш старый скрипт для диапазона 0-6 на скрипт для диапазона 1-7, о котором мы всегда мечтали; Math.floor(Math.random() * 6 + 1). Вам не нужны дополнительные скобки, так как умножение всегда выполняется до сложения. Проверьте, что получилось. Полная строка, если вы точно следовали примеру, должна выглядеть так: alert(Math.floor(Math.random() * 6 + 1));. Выглядит немного запутанно, но, надеемся, уже не так сильно.
  6. 6 3-9? В качестве последнего примера, если вы хотите сгенерировать число в диапазоне 3-9 в своем скрипте, вам следует умножить результат Math.random() на 7. После того, как вы вызвали для этого значения метод Math.floor(), вы можете прибавить к нему 3 (помните, считаем от 0), и вуаля!

Советы

  • Другие методы округления в Math - это round(), который округляет так, как вы и ожидали, и ceil(), который округляет всегда в большую сторону. Вы можете написать скрипт с использованием любых из этих методов, но floor() кажется наиболее интуитивно понятным.

Предупреждения

  • Точки с запятой были оставлены в конце большинства примеров для ясности. Рекомендуется вставлять их даже просто для следования основным соглашениям по программированию.
  • Обязательно используйте заглавную 'M' в Math, потому что иначе это не будет работать!
  • Получение действительно случайных чисел на компьютерах невозможно независимо от языка программирования. Однако, существуют алгоритмы получения результата, очень близкого к случайному. Такие числа называются псевдослучайными.

Что вам понадобится

  • Текстовый редактор
Категория: Вопросы и ответы | Просмотров: 467 | | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]