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 - 17:46
#permalink

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


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

Шакал!


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

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

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

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


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

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


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

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


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

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


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

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


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

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

C чего бы это?


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

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


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

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


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

Воистину


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

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


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

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


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

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


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

Автор: Гуля1 (не зарегистрирован), дата: 11 июня, 2011 - 23: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 - 16:27
#permalink

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


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

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


Автор: kuzroman, дата: 14 сентября, 2011 - 18: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 - 22:21
#permalink

а нельзя

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

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

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
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
Антиспам
12 + 5 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама
Содержание

Учебник javascript

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

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

Интерфейсы

Все об AJAX

Оптимизация

Разное

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

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