Javascript случайное целое число в диапазоне. Случайные числа. Случайные числа в PHP

Возможности 03.03.2020

После generati ng случайное число с использованием компьютерной программы, оно по-прежнему считается случайным числом, если выбранное число является частью или полным из исходного. Но если он был изменен, то математики не принимают его как случайное число, и они могут называть его предвзятым числом. Но если вы разрабатываете программу для простой задачи, это не будет рассмотрен. Но если вы разрабатываете программу для генерации случайного числа для ценного материала, такого как лотерейная программа или игра в азартные игры, тогда ваша программа будет отклонена руководством, если вы не будете рассматривать этот случай.

Так что для тех, кто таких людей, вот мое предложение:.

Генерация случайных чисел с помощью Math.random() (скажем это n)

Now for , то пол n * 10 является вашим ответом и, если нужно , то пол n * 100 - ваш ответ и так далее.

Теперь войти в свою роль:

Вы просили числа среди определенного диапазона. (В этом случае вы смещены в этом диапазоне. - Приняв число из , свернув кубик, вы пристраститесь к , но все же это случайный случай, если и только если смерть непредвзята.)

Так что рассмотрите свой диапазон ==> количество элементов в диапазоне = 247 - 78 + 1 = 170; (Поскольку обе границы включают

/*Mthod 1:*/ var i = 78, j = 247, k = 170, a = , b = , c, d, e, f, l = 0; for(; i = 56) { num = 1; } if (++num2 >= 56) { num2 = 1; } var num3 = this.SeedArray - this.SeedArray; if (num3 == 2147483647) { num3--; } if (num3 < 0) { num3 += 2147483647; } this.SeedArray = num3; this.inext = num; this.inextp = num2; return num3; }; Random.prototype.Sample = function () { return this.InternalSample() * 4.6566128752457969E-10; }; Random.prototype.GetSampleForLargeRange = function () { var num = this.InternalSample(); var flag = this.InternalSample() % 2 == 0; if (flag) { num = -num; } var num2 = num; num2 += 2147483646.0; return num2 / 4294967293.0; }; Random.prototype.Next = function (minValue, maxValue) { if (!minValue && !maxValue) return this.InternalSample(); var num = maxValue - minValue; if (num количество элементов диапазона = 247 - 78 + 1 = 170; (так как обе границы включены.

/*Mthod 1:*/ var i = 78, j = 247, k = 170, a = , b = , c, d, e, f, l = 0; for(; i 20) { bool = true; } else { bool = false; } } return number; }

Используя следующий код, вы можете генерировать массив случайных чисел без повторения в заданном диапазоне.

Function genRandomNumber(how_many_number,min,max) { // parameters // how_many_number: how many numbers you want to generate. For example it is 5. // min(inclusive) : minimum/low value of a range. it must be any positive integer but less than max. i.e 4 // max(inclusive) : maximun value of a range. it must be any positive integer. i.e 50 // return type: array var random_number = ; for (var i = 0; i < how_many_number; i++) { var gen_num = parseInt((Math.random() * (max-min+1)) + min); do { var is_exist = random_number.indexOf(gen_num); if (is_exist >= 0) { gen_num = parseInt((Math.random() * (max-min+1)) + min); } else { random_number.push(gen_num); is_exist = -2; } } while (is_exist > -1); } document.getElementById("box").innerHTML = random_number; }

Чтобы получить случайное число, скажем, между 1 и 6, сначала выполните:

0.5 + (Math.random() * ((6 - 1) + 1))

Это умножает случайное число на 6 и затем добавляет к нему 0.5. Затем округлите число до положительного целого числа, выполнив:

Math.round(0.5 + (Math.random() * ((6 - 1) + 1))

Это округляет число до ближайшего целого числа.

Или, чтобы сделать это более понятным, выполните следующее:

Var value = 0.5 + (Math.random() * ((6 - 1) + 1)) var roll = Math.round(value); return roll;

В общем случае код для этого с использованием переменных:

Var value = (Min - 0.5) + (Math.random() * ((Max - Min) + 1)) var roll = Math.round(value); return roll;

Причиной отнять 0,5 от минимального значения является то, что использование только минимального значения позволит вам получить целое число, которое было бы больше вашего максимального значения. Убрав 0,5 от минимального значения, вы по существу предотвращаете округление максимального значения.

Надеюсь, что это поможет.

Случайное целое число между самым низким и самым высоким:

Function randomRange(l,h){ var range = (h-l); var random = Math.floor(Math.random()*range); if (random === 0){random+=1;} return l+random; }

Не самое элегантное решение.. но что-то быстрое.

Function getRandomInt(lower, upper) { //to create an even sample distribution return Math.floor(lower + (Math.random() * (upper - lower + 1))); //to produce an uneven sample distribution //return Math.round(lower + (Math.random() * (upper - lower))); //to exclude the max value from the possible values //return Math.floor(lower + (Math.random() * (upper - lower))); }

Чтобы проверить эту функцию и варианты этой функции, сохраните ниже HTML/JavaScript в файл и откройте его в браузере. В коде будет показан график, показывающий распределение одного миллиона вызовов функций. Код также будет записывать случаи краев, поэтому, если функция вырабатывает значение, большее, чем max, или меньше, чем min, you.will.know.about.it.

function getRandomInt(lower, upper) { //to create an even sample distribution return Math.floor(lower + (Math.random() * (upper - lower + 1))); //to produce an uneven sample distribution //return Math.round(lower + (Math.random() * (upper - lower))); //to exclude the max value from the possible values //return Math.floor(lower + (Math.random() * (upper - lower))); } var min = -5; var max = 5; var array = new Array(); for(var i = 0; i Number.MAX_SAFE_INTEGER || min < Number.MIN_SAFE_INTEGER) { throw new Error("Arguments must be safe integers."); } else if (range > maxGeneratedValue) { throw new Error("Range of ${range} (from ${min} to ${max}) > ${maxGeneratedValue}."); } else if (max < min) { throw new Error("max (${max}) must be >= min (${min})."); } else if (min === max) { return min; } let generated; do { generated = crypto.getRandomValues(new Uint32Array(1)); } while (generated > maxUnbiased); return min + (generated % possibleResultValues); }; console.log(randomInteger(-8, 8)); // -2 console.log(randomInteger(0, 0)); // 0 console.log(randomInteger(0, 0xFFFFFFFF)); // 944450079 console.log(randomInteger(-1, 0xFFFFFFFF)); // Error: Range of 4294967296 covering -1 to 4294967295 is > 4294967295. console.log(new Array(12).fill().map(n => randomInteger(8, 12))); //

Описание

Метод Math.random() возвращает псевдослучайное число между 0 и 1.

Псевдослучайное число создаётся в диапазоне от 0 (включительно) до 1 (исключительно), то есть возвращаемое число может быть нулём, но всегда будет меньше единицы.

Для округления числа с плавающей точкой до целого можно воспользоваться к примеру методом Math.floor() .

Синтаксис Math.random() Возвращаемое значение
  • Число с плавающей точкой в диапазоне от 0 (включительно) до 1 (исключительно).

Метод Math.random() в основном используют для генерации псевдо-случайного числа в определённом диапазоне. Например, нам надо получить число в диапазоне от 50 до 100 (включительно). Для этого нам придётся написать следующий код:

Document.write(Math.floor(Math.random() * 51 + 50));

Рассмотрим подробно как работает наш пример и почему используется именно такая форма записи. Первым делом нам надо указать минимальное получаемое значение из нужного диапазона, в нашем примере это число 50. Теперь нам нужно каким-то образом получить случайное число, которое при сложении с числом 50 не будет превышать в сумме число 100. Как мы знаем из математики, нахождение неизвестного слагаемого делается путём вычитания из суммы известного слагаемого. 100 - 50: получаем разность 50. Теперь для проверки, подходит нам это число или нет, умножим его на возможное минимальное и максимальное число возвращаемое методом Math.random(). Умножаем минимальное 0.004704564176082244 * 50 = 0.2... и максимальное 0.9999999999746223 * 50 = 49.9... И так мы видим, что при умножении разности на максимально возможное случайное число в результате даёт нам целую часть числа на единицу меньше, чем нужно. Чтобы исправить ситуацию, нам нужно всего лишь прибавить одну единицу к 50, т.е. 50 + 1 = 51, теперь если полученное число умножить на максимально возможно число возвращаемое методом у нас будет выходить число 50.9... - это то, что нам надо, после сложения чисел 50.9 + 50, получаем 100.9. Для округления числа до целого используем метод Math.floor(). Таким образом, формула для получения нужного числа выглядит следующим образом: max - min + 1. Перепишем приведённый выше пример:

Var max = 100, min = 50; document.write(Math.floor(Math.random() * (max - min + 1) + min));

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

Пример Название документа

Псевдослучайное число в диапазоне от 1 до 10.

var x; for(var i = 0; i < 10; i++) { x = document.getElementById("test"); x.innerHTML += Math.floor(Math.random() * 10 + 1) + "
"; }

«Алгоритм» для случайной выборки значений из array без их повторения. Конкретнее, в рамках обучения JS, я использовал его для генерации классической RPG-группы персонажей (варвар, маг, вор, рыцарь, священник), без повторения классов и имен.

Принцип предельно простой, но он может быть полезен таким же новичкам в JS как и я. Привязка к RPG исключительно символическая - сейчас я активно пытаюсь сменить профиль с маркетинга на IT (понял, что душа лежит), а практиковаться в игровой форме гораздо интереснее.

1. Создаем шаблон Прежде чем генерировать группу персонажей, нужно задать шаблон для их генерации. Собственно, вот:

Function GamePlayer(n, r, l, p) { this.nick = n; this.role = r; this.level = l; this.portrait = p; }
Фактически, эта функция будет создавать персонажей из переменных, через которые она будет вызвана. Например:

Var player1 = new GamePlayer("Power Ranger","barbarian","64","img/barbarian.jpg")
Теперь в переменной player1 хранится варвар Power Ranger 64 уровня с определенным портретом; мы можем отображать любые его параметры в теле страницы используя player1.nick , player1.level и т.п.

Значения (n, r, l, p) из GamePlayer отвечают за прием и порядок приема данных в функцию. Если в примере поменять n и r местами, то в player1 сохранится могучий рейнджер Barbarian, что не совсем соответствует задаче.

2. Задаем массивы Чтобы не создавать персонажей самостоятельно, а почти случайно генерировать их (как и обещалось в заголовке), необходимы массивы из которых мы будем брать параметры этих самых персонажей. Как уже описывалось выше, параметров у нас всего 4: имя персонажа, класс, уровень и портрет.

Массив для имени:

Var playerNames = ["Rabbit Helpless", "Warm Dreaded Foal", "Desire Kit", "Angel Dusty", "Sweety Frozen", "Silver Heavy Wombat", "Lost Puma", "Vital Panda", "Rolling Sun", "Steel Runny", "Young Fox", "Needless Ruthless Volunteer", "Chipmunk Cult", "Indigo Puppy"];
Можно было бы пойти дальше, и генерировать имена из 2-3 составляющих, но алгоритм такого улучшения не содержит ничего нового (тот же рандом), а потом просто усложнил бы учебный процесс.

Массив для класса:

Var playerRoles = ["barbarian", "mage", "rogue", "knight", "priest"];
Все так же очевидно. Несколько string , из которых мы потом будем выбирать значения для отображения на странице.

Массив для уровня:

В конкретном примере, я хотел, чтобы все члены группы были от 60 до 70 уровня. Но, так как условия могут поменяться, нужны было создать массив с 0 по 80 уровень, из которого потом выбирать нужные значения. Создавал циклом:

Var playerLevels = ; for (i = 0;i

Рекомендуем почитать

Наверх