Игра на «Морской Бой» на JavaScript: «Простая Игра» и «Игра для Двоих»
Yutex - Платный хостинг PHP.
Advego.ru - система покупки и продажи контента для сайтов, форумов и блогов

Технические фишки инфобизнеса 2014

Статьи для сайтов!!!
Объект Math - Округление чисел Метод random - Возвращает случайное число Методы объекта Date - Дата и Время

Метод random - Объект Math - Генерация случайных чисел

Функции и методы числовых объектов - Объект Number

Урок №5 Метод random - Возвращает случайное число

Количество просмотров: 1105

Нередко в javascript возникает ситуация, когда для выполнения какого-либо скрипта необходимо получить случайное число. Для этого следует воспользоваться методом random объекта Math.

Метод random возвращает случайное число от 0 до 1

Метод random возвращает случайное число от 0 до 1

По умолчанию метод random объекта Math генерирует (возвращает) случайное число от 0 до 1.

<script type="text/javascript">

var any = Math.random(); /* Генерируем число от 0 до 1 */

document.write(any);

</script>

Но на самом деле в большинстве случаев это бесполезно, так как дробное число от 0 до 1 с большим количеством знаков после запятой весьма редко применимо.

Метод random возвращает случайное число от 0 до 100

Метод random возвращает случайное число от 0 до 100

Метод random генерирует случайные числа от 0 до 100.

Рассмотрим на примере, как это сделать...

<script type="text/javascript">

var any = Math.random() * 100; /* Генерируем число от 0 до 100 */

document.write(any);

</script>

Как видно из примера, для того чтобы сгенерировать случайное число от 0 до 100 при помощи метода random, нужно скрипт для генерации чисел от 0 до 1 умножить на 100.

Но и этот вариант работы метода random практически бесполезен, так как, по сути, мы имеем все тоже дробное число, что и в предыдущем примере. В то время как для работы скриптов в основном требуется генерация целых чисел.

Здесь приходят на помощь методы round, floor или ceil из прошлого урока, которые позволяют округлять дробные числа.

<script type="text/javascript">

var any = Math.random() * 100; /* Генерируем число от 0 до 100 */

document.write(Math.round(any)); /* Округляем сгенерированное число */

</script>

Вот так при помощи методов random и round объекта Math сначала генерируется, а потом округляется случайное число от 0 до 100.

Вместо 100 можно указать любое другое число, например, 40 или 400 и т.д. Тогда метод random будет выдавать случайные числа в диапазоне от 0 до любого указанного.

Метод random - Скрипт для генерации чисел из ПРОИЗВОЛЬНОГО диапазона

Метод random - Скрипт для генерации чисел из ПРОИЗВОЛЬНОГО диапазона

В предыдущем примере мы убедились в том, что метод random вместе с одним из методов округления может генерировать случайные ЦЕЛЫЕ числа в диапазоне от 0 до любого указанного Вами числа.

При этом мы имеем дело с довольно простым javascript-кодом.

А что если нужно сгенерировать число в произвольном диапазоне, т.е. в таком, где первое число отлично от 0???

Для этого существует определенный скрипт. См. пример ниже...

<script type="text/javascript">

function myRandom (from, to)

{
return Math.floor((Math.random() * (to - from + 1)) + from); /* Оператор return возвращает результат работы функции */
}

var result = myRandom(40,50);

document.write(result);

</script>

Попробуйте в этом скрипте указать свои числа...

Домашнее задание - Метод random - Генерация случайного числа

Домашнее задание - Метод random - Генерация случайного числа

Теперь можно выполнить самостоятельное задание по генерации случайных чисел при помощи метода random объекта Math.

Вам нужно создать функцию, которая будет принимать три параметра.
1. Массив, состоящий из 10 пустых элементов.
2. Начальное значение интервала
3. Конечное значение интервала.

Функция должна заполнить пустой массив случайными числами в указанном диапазоне и вывести содержимое массива на экран.

Исходный массив для примера:
var randomArray = new Array(10);

Для решения этого задания нужно будет воспользоваться функцией для генерации чисел из ПРОИЗВОЛЬНОГО диапазона, о которой говорилось ранее...

Решение №1

<script type = "text/javascript">

var randomArray = new Array(10); /* Исходный массив */

function three(from, to, emptyArray) /* Функция с тремя параметрами */
{

for (i = 0; i < emptyArray.length; i++) /* Перебираем элементы массива */
{
emptyArray[i] = Math.floor((Math.random() * (to - from + 1)) + from);
/* Присваиваем текущему элементу массива случайно сгенерированное и округленное число */

document.write(emptyArray[i] + "<br>"); /* Выводим текущий элемент массива */
}

document.write("<br>" + emptyArray); /* Выводим весь массив */
}

three(40, 50, randomArray) /* Вызываем функцию и указываем для нее параметры */

</script>

Ниже представлено немного иное решение задачи. В нем одну функцию (для генерации чисел из ПРОИЗВОЛЬНОГО диапазона) будем вызывать внутри другой функции...

<script type = "text/javascript">

var randomArray = new Array(10); /* Исходный массив */

function myRandom (from, to) /* Функция для генерации случайных чисел */
{
return Math.floor((Math.random() * (to - from + 1)) + from);
}

function three(start, end, emptyArray) /* Функция с тремя параметрами */
{

for (i = 0; i < emptyArray.length; i++) /* Перебираем элементы массива */
{
emptyArray[i] = myRandom (start, end); /* Присваиваем текущему элементу массива РЕЗУЛЬТАТ РАБОТЫ ФУНКЦИИ для генерации случайных чисел, ТО ЕСТЬ случайно сгенерированное и округленное число */
document.write(emptyArray[i] + "<br>"); /* Выводим текущий элемент массива */
}

document.write("<br>" + emptyArray); /* Выводим весь массив */
}

three(40, 50, randomArray) /* Вызываем функцию и указываем для нее параметры */

</script>

Два решения домашнего задания очень похожи друг на друга. Однако здесь есть одно принципиальное различие.

  • В первом решении в теле цикла for, текущему элементу массива присваивалось случайно сгенерированное и округленное число следующим образом:

    emptyArray[i] = Math.floor((Math.random() * (to - from +1)) + from);

  • Во втором решении текущему элементу массива был присвоен РЕЗУЛЬТАТ РАБОТЫ функции для генерации случайных чисел:

    emptyArray[i] = myRandom (start, end);

    Смотрите в начало программы, где в теле функции myRandom мы вернули результат ее работы при помощи оператора return.

    function myRandom (from, to)
    {
    return Math.floor((Math.random() * (to - from + 1)) + from);
    }

    Благодаря этому мы смогли получить результат работы функции в нужном месте программы.

    Таким образом, здесь удалось на практике убедиться в том, насколько удобно работать с оператором return.

Главная Изучаем JavaScript Метод random - Возвращает случайное число Методы объекта Date - Дата и Время

Ваши комментарии к уроку:

Комментариев нет...

Добавить комментарий:

Ваше Имя:*
Комментарий:*
Ответьте на вопрос: *
Сколько дней в Високосном году?
* - поля обязательные для заполнения.
JavaScript
Частота просмотра уроков
Дизайн сайтов
ПОИСК ПО САЙТУ:

Моё имя Антон. Связаться со мною Вы можете по e-mail: averagev@mail.ru