Домой / Игры / Сгенерировать последовательность случайных чисел javascript. Округление к меньшему до ближайшего целого числа. Округление десятичных чисел

Сгенерировать последовательность случайных чисел javascript. Округление к меньшему до ближайшего целого числа. Округление десятичных чисел

Есть несколько примеров:

/** * Returns a random number between min (inclusive) and max (exclusive) */ function getRandomArbitrary(min, max) { return Math.random() * (max - min) + min; } /** * Returns a random integer between min (inclusive) and max (inclusive). * The value is no lower than min (or the next integer greater than min * if min isn"t an integer) and no greater than max (or the next integer * lower than max if max isn"t an integer). * Using Math.round() will give you a non-uniform distribution! */ function getRandomInt(min, max) { min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min + 1)) + min; }

Здесь логика за этим. Это простое правило трех:

Math.random() возвращает Number от 0 (включительно) до 1 (исключение). Итак, у нас есть такой интервал:

То пол 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 20) { bool = true; } else { bool = false; } } return number; }

Вот MS DotNet Внедрение класса Random в javascript -

Var Random = (function () { function Random(Seed) { if (!Seed) { Seed = this.milliseconds(); } this.SeedArray = ; for (var i = 0; i < 56; i++) this.SeedArray.push(0); var num = (Seed == -2147483648) ? 2147483647: Math.abs(Seed); var num2 = 161803398 - num; this.SeedArray = num2; var num3 = 1; for (var i_1 = 1; i_1 < 55; i_1++) { var num4 = 21 * i_1 % 55; this.SeedArray = num3; num3 = num2 - num3; if (num3 < 0) { num3 += 2147483647; } num2 = this.SeedArray; } for (var j = 1; j < 5; j++) { for (var k = 1; k < 56; k++) { this.SeedArray[k] -= this.SeedArray; if (this.SeedArray[k] < 0) { this.SeedArray[k] += 2147483647; } } } this.inext = 0; this.inextp = 21; Seed = 1; } Random.prototype.milliseconds = function () { var str = new Date().valueOf().toString(); return parseInt(str.substr(str.length - 6)); }; Random.prototype.InternalSample = function () { var num = this.inext; var num2 = this.inextp; if (++num >= 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 = 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 random(high,low) { high++; return Math.floor((Math.random())*(high-low))+low; }

Мы выполняем high++ , потому что Math.random() генерирует случайное число между 0, (включительно) и 1 (исключение). Исключенный, означает, что мы должны увеличивать максимум на один до выполнения любой математики. Затем мы вычитаем низкое значение из максимума, давая нам наибольшее число для генерации - низкое, затем + низкое, что приводит к возврату в нормальное состояние и делает наименьшее число по крайней мере низким. то мы возвращаем результирующее число

random(7,3) может вернуться 3,4,5,6, or 7

/* assuming that window.crypto.getRandomValues is available the real range would be fron 0 to 1,998 instead of 0 to 2,000 See javascript documentation for explanation https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues */ var array = new Uint8Array(2); window.crypto.getRandomValues(array); console.log(array + array);

Uint8Array создает массив, заполненный числом до трех цифр, которое должно быть не более 999. Этот код очень короткий.

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 2012 function isEmpty(value){ return (typeof value === "undefined" || value === null); } var numSeq = new Array(); function add(num,seq){ var toAdd = new Object(); toAdd.num = num; toAdd.seq = seq; numSeq = toAdd; } function fillNumSeq (num,seq){ var n; for(i=0;i