Javascript.RU

Math.random

Синтаксис

var randomNumber = Math.random();

Описание, примеры

Заметим, что числа в яваскрипт хранятся в формате с плавающей точкой IEEE 754 с округлением в сторону ближайшего четного. Поэтому иногда, в очень редких случаях, возможна генерация обычно исключенной верхней границы.

Пример: Cлучайное число от 0(включительно) до 1
function getRandom()
{
  return Math.random();
}
Пример: Случайное число между min и max
function getRandomArbitary(min, max)
{
  return Math.random() * (max - min) + min;
}
Пример: Случайное целое между min и max
// использование Math.round() даст неравномерное распределение!
function getRandomInt(min, max)
{
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

Автор: Александ (не зарегистрирован), дата: 18 ноября, 2009 - 18:46
#permalink

добавил в копилку))


Автор: Гость (не зарегистрирован), дата: 30 января, 2012 - 15:15
#permalink

Шакал!


Автор: vital (не зарегистрирован), дата: 17 декабря, 2009 - 16:11
#permalink

А почему нельзя сделать так?

Math.floor(Math.random(min,max)*1000);

Или есть подвох?


Автор: vital (не зарегистрирован), дата: 17 декабря, 2009 - 16:20
#permalink

Ой блин! Я Math.random(); перепутал с пхпшным rand(); ))


Автор: Гость (не зарегистрирован), дата: 30 марта, 2010 - 17:44
#permalink

function getRandomArbitary(min, max)
{return Math.random() * (max - min) + min;}
А зачем "* (max - min)"?


Автор: B@rmaley.e><e, дата: 30 марта, 2010 - 23:29
#permalink

Math.random() возвращает дробное число от 0 до 1.
0 ≤ Math.random() < 1
Поэтому нужно получить случайное число от 0 до разницы между максимумом и минимумом (решается умножением этой разницы на случайное число) и добавить минимум.


Автор: Гость (не зарегистрирован), дата: 1 января, 2011 - 15:16
#permalink

Math.floor(Math.random() * (max - min + 1)) + min;
В результате будет число min, т.к. умножение на 0 идет


Автор: B@rmaley.e><e, дата: 1 января, 2011 - 23:02
#permalink

умножение на 0 идет

C чего бы это?


Автор: Гость (не зарегистрирован), дата: 8 января, 2011 - 16:53
#permalink

конечно всё однозначно помогло вот только подскажите как это рандомное значение присвоить переменной?


Автор: Гость (не зарегистрирован), дата: 15 января, 2011 - 16:22
#permalink

а вот кстате и еще 1 подвох смотрите т к функция присваивает дробное значение то после такой функции результаты частенько придется округлять


Автор: Гость (не зарегистрирован), дата: 5 марта, 2011 - 20:10
#permalink

Воистину


Автор: lymish, дата: 8 марта, 2011 - 11:38
#permalink

По моему, выражение по поиску случайного целого между min и max Math.floor(Math.random() * (max - min + 1)) + min; даст дробный результат, если min будет дробным.


Автор: lymish, дата: 8 марта, 2011 - 11:51
#permalink

И еще, не учитывается, что может быть 2 дробных числа, между которыми не существует целого, например 1,5 и 1,7.


Автор: Гость (не зарегистрирован), дата: 19 апреля, 2011 - 16:43
#permalink

Ну вы еще про то, что max может оказаться меньше чем min скажите


Автор: monolithed, дата: 8 мая, 2011 - 00:35
#permalink
console.log((Math.random()*10)+1|0); //min - 1, max - 10

Автор: Гуля1 (не зарегистрирован), дата: 12 июня, 2011 - 00:48
#permalink
Пример: Случайное число между min и max
function getRandomArbitary(min, max)
	{
	  return Math.random() * (max - min) + min;
	}
Пример: Случайное целое между min и max
// использование Math.round() даст неравномерное распределение!
	function getRandomInt(min, max)
	{
	  return Math.floor(Math.random() * (max - min + 1)) + min;
	}

Зачем такие "Сложности"?Когда можно так:

Пример: Случайное число между 0 и max(от 0 и max,где max высший предел)
function getRandomArbitary (max)
	{
	  return Math.random() *  max;
	}
Или
function getRandomArbitary (max)
	{
	  return Math.random() *  (max +1);
	}
Пример: Случайное целое между min и max
// использование Math.round() даст неравномерное распределение!
	function getRandomInt(min, max)
	{
	  return Math.floor(Math.random() * max)+min;
	}
К примеру:случайное целое число от 6 до 11:
function getRandomInt
	{
	  return Math.floor(Math.random() * 6)+6;//11
	}

Автор: freeridik (не зарегистрирован), дата: 23 июня, 2011 - 17:27
#permalink

ты хоть сам проверь вначале свой код)


Автор: kuzroman, дата: 14 сентября, 2011 - 19:14
#permalink

как альтернатива:
Math.floor(Math.random()*196) + 5 // от 5 до 200


Автор: kuzroman, дата: 14 сентября, 2011 - 19:14
#permalink

// случайное число без повторов!
var randNum;
var randNumOld;
function getRandomInt(min, max)
{
randNum = Math.floor(Math.random() * (max - min + 1)) + min;
if(randNum==randNumOld) getRandomInt(1, kolFoto);
randNumOld = randNum;
return randNum;
}


Автор: Гость (не зарегистрирован), дата: 17 января, 2012 - 23:21
#permalink

а нельзя

function random(max){math.floor(math.random() * max);}

Автор: Лев (не зарегистрирован), дата: 22 февраля, 2012 - 18:11
#permalink

Math.Random(0,56); - случайное число от 0 до 56.
А как задать чтобы ряд чисел был по порядку от 0 до 56 ?


Автор: mrAndersons (не зарегистрирован), дата: 23 марта, 2012 - 17:10
#permalink

Спасибо автору, всё работает.


Автор: Гость (не зарегистрирован), дата: 4 апреля, 2012 - 20:51
#permalink

Добрый день. НАРОД, помогите, никак не получается((
нужно попросить у пользователя номер телефона в формате 1(111)111-1111.
С помощью регулярных выражений его нужно проверить, но если ошибка (пользователя) нужно выводить сообщение об этой ошибке. Как это сделать правильно, и чтобы работало без ошибок. Нужна ваша помощь, буду очень признателен.


Автор: bankr (не зарегистрирован), дата: 23 апреля, 2012 - 11:16
#permalink

Я правильно понимаю, что math.floor(math.random()*max) никогда не даст max, а только max-1, так как math.random() не возвращает единицу (точнее от 0 вкл. до 1 невкл.), и math.floor округляет вниз (меньше или равно)? Я юзаю math.round(math.random()max) - округление по правилам арифметики. По-моему, так имеется вполне реальная вероятность получения как min, так и max значения.
Если что - ногами не пинать ))) я экономист, а не программист.


Автор: bankr (не зарегистрирован), дата: 23 апреля, 2012 - 11:19
#permalink

Просьба удалить мой первый пост. It was dumb.


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
4 + 1 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама

Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние темы на форуме
Forum
Последние комментарии