Javascript случайное нечетное число

Math.random()

Math.random() — это функция встроенного объекта Math , которая возвращает псевдослучайное число с плавающей запятой из диапазона от 0 включительно, до 1 не включительно.

Синтаксис

Опубликуем результат в console.

 let randomNumber = Math.random() console.log(randomNumber) // или просто console.log(Math.random()) 

Особенности генерации случайных чисел

1. Math.random() генерирует случайные числа на основе алгоритма, который в итоге можно просчитать, поэтому метод не подходит там, где речь идет о безопасности.

2. Разработчик или пользователь не может выбрать алгоритм, который будет использовать метод для генерации рандомного числа.

3. Math.random() формирует числа похожие на 0.6592126750964376 или 0.4571938784553331. В дальнейшем результат масштабируются до нужного формата и диапазона.

4. Результатом метода может быть ноль, но единица никогда.

5. В сферах связанных с безопасностью рекомендуется использовать Web Cryptography API и его методы getRandomValues() и generateKey() .

Случайное число в диапазоне

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

 function getRandomNumber(min, max)

Целое число в диапазоне

Получаем целое число от минимума (включительно) до максимума (не включительно)

 function getRandomNumber(min, max)
 function getRandomNumber(min, max)

ceil() — округляет в большую сторону, floor() в меньшую.

Случайное число в диапазоне включительно max

Функция учитывает недостатки предыдущих решений и выводит случайные числа от и до включительно для обоих случаев.

 function getRandomNumber(min, max)
 function getRandomNumber(min, max)
 function getRandomNumber(min, max)

round() — округляет до ближайшего целого.

Итого

Math.random() генерирует псевдослучайное число от 0 до 1 (не включительно). Метод не содержит параметров, а его результаты удобно форматировать, тем самым получая случайные целые или дробные числа в необходимом диапазоне.

Skypro — научим с нуля

Источник

Генератор случайных нечётных чисел.

Помогите пожалуйста! Не могу понять почему не работает код. На JS только первый месяц занимаюсь.

Генератор случайных нечётных чисел в диапазоне между n и m ВКЛЮЧИТЕЛЬНО. Причём, n и m могут быть не только положительными , но и отрицательными, а также может быть, что (n > m) или (n < m).

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
let n = prompt("Значение n"); let m = prompt("Значение m"); if (n  m) { let x = (Math.round(Math.random() * m)); if (x % 2 !== 0) { console.log(x); } else { console.log(x + 1); } else if (m > n) { let y = (Math.round(Math.random() * m)); if (y % 2 !== 0) { console.log(y); } else { console.log(y + 1); } console.log();

Генератор случайных нечетных чисел
Вообщем есть код, сам написал, я новенький. Но что то не понимаю. let n = 100; let m = -50; .

Создать генератор случайных и псевдослучайных чисел с вводом данных
Всем привет, дорогой КиберФорум! Передо мной, начинающим ЯваСкриптером стоит 2 задачки: 1.

Генератор случайных чисел без функции Math.random
Помогите сделать код есть вот такая формула "Если пользователю потребуется, чтобы случайное число x.

Генератор случайных чисел в JavaScript
Существует и если нет то как самому организовать генератор случайных сичел, что то аналогичное.

Эксперт C

У меня получилось вот так решить задачу без if и пр.

let m = -10; let n = -3; let range = Math.abs(Math.max(m, n)-(Math.min(m,n))); let Min = Math.min(m, n); let firstRandomNumber = (Math.round(Math.random() * range)) + Min; let FinalRandomResult = firstRandomNumber + ((firstRandomNumber % 2) + 1); console.log('Случайное нечетное число в диапазоне между', m, 'и', n, '=', FinalRandomResult);

Эксперт JS

Лучший ответ

Сообщение было отмечено amr-now как решение

Решение

let n = -1; let m = 1; let min = Math.min(n, m); min += !(min % 2); // Дотянуть до нечетного минимума let max = Math.max(n, m); max -= !(max % 2); // Снизить до нечетного максимума // К минимуму прибавить случайные числа с шагом 2 let number = min + Math.floor(Math.random() * ((max - min) / 2 + 1)) * 2; console.log(number);

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

Банальный генератор случайных НЕповторяющихся чисел
В нашей глобальной свалке ничего нет конкретного, ни на одном форуме нет самого простого банального.

Создать файл из 50 целых чисел, используя генератор случайных чисел
Создать файл из 50 целых чисел, используя генератор случайных чисел. Вывести эти числа на экран.

Создать генератор случайных чисел с вычеркиванием сгенерированных чисел
Помогите пож. решить задачку: 1 Есть диапазон чисел от 1 до «i» 2 Необходимо выбрать случайное.

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

Генератор случайных чисел
Добрый день, друзья :)! Подскажите, пожалуйста. в учебнике программа есть такая, но у меня не.

Источник

Как сгенерировать нечётное рандомное число?

twobomb

Сергей Соколов, На самом деле специально не делал защиту от дурака и специально не использовал цикл, потому-что у дурака может все зависнуть, а в такой случае у вас ничего не зависнет, так как очень быстро наступит stackoverflow и просто выкинет ошибку в консоль.

function randomOddInt(min, max) < min = min & 1 ? min : min + 1; max = max & 1 ? max : max - 1; if (min === max) return min; if (min >max) throw "Invalid input"; const range = 1 + (max - min) / 2; return min + Math.floor(Math.random() * range) * 2; >

Нечетное число n можно выразить через параметр t:
n = 2* t — 1
Будем рандомизировать параметр t и переводить его в n, но нужны минимальное значение и максимальное.
min = 2 * t — 1, отсюда:
t_min = (min + 1) / 2
max = 2 * t — 1, отсюда:
t_max = (max + 1) / 2
Деление, скорее всего целочисленное.
Получается:

var n_random = 2 * randomEvenInt((min + 1) / 2, (max + 1) / 2) - 1;

bingo347

Если диапазон не будет выходить за пределы int32, то проще всего принудительно устанавливать нулевой бит в 1:

function randomEvenInt(min, max)
function randomEvenInt(min, max)

Источник

Генератор случайных нечетных чисел

Написать генератор нечётных случайных чисел в диапазоне между n и m включительно. Учесть, что n и m могут быть отрицательными, а также может быть n > m или n < m.

Числа для подставки:
n = 0, m = 100;
n = 2, m = 5;
n = 100, m = −5;
n = -3, m = −10.

Java Script, генератор случайных нечётных чисел
Помогите пожалуйста! Не могу понять почему не работает код. На JS только первый месяц занимаюсь. .

Генератор случайных чисел без функции Math.random
Помогите сделать код есть вот такая формула "Если пользователю потребуется, чтобы случайное число x.

Создать генератор случайных и псевдослучайных чисел с вводом данных
Всем привет, дорогой КиберФорум! Передо мной, начинающим ЯваСкриптером стоит 2 задачки: 1.

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

Эксперт JSЭксперт HTML/CSS

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
function randomOdd(n, m){ let min, max; if(n > m){ min = m; max = n; } else if(n === m){ min = max = n; } else { min = n; max = m; } const result = Math.floor(min + Math.random() * (max - min)); return result + ((result % 2) - 1); } console.log(randomOdd(0, 100)); console.log(randomOdd(2, 5)); console.log(randomOdd(100, -5)); console.log(randomOdd(-3, -10));

gogolik, спасибо! Но задача сделать без if и циклов.

И попробуйте вывести ваше решение с такие знfчениями: console.log(randomOdd(-1, 1));

Эксперт JSЭксперт HTML/CSS

ЦитатаСообщение от yakupix Посмотреть сообщение

ЦитатаСообщение от yakupix Посмотреть сообщение

function generateNonEvenRandomNumber(min, max) { let random = Math.floor(Math.random() * (max - min) + min); if(!(random % 2)) { // Если число чётное random -= Math.sign(random); // Учитываем также отрицательные значения, иначе при отрицательных значениях случайного значения мы можем уйти за пределы } return random; }

Добавлено через 9 минут
Вот. И не заметил, как ответили. При вызове с -1 и 1 правда 1 не возвращается никогда.

function generateNonEvenRandomNumber(min, max) { let random = Math.floor(Math.random() * (max - min) + min); random -= Math.sign(random) * !(random % 2); // Учитываем также отрицательные значения, иначе при отрицательных значениях случайного значения мы можем уйти за пределы return random; }

Эксперт JS

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
// Функция случайного целого числа из закрытого диапазона const random = (min, max) => Math.floor(Math.random() * (max - min + 1) + min); function randomOdd(min, max) { if (min === max && max % 2 === 0) throw new Error("Диапазон не включает нечетные числа."); // Упорядочить min и max можно несколькими способами if (min > max) [max, min] = [min, max]; if (min % 2 === 0) ++min; // Начальная база let delta = max - min; if (delta && delta % 2) --delta; let r = random(0, delta / 2); // console.log(min, max, delta / 2, r); // Для тестирования return min + r * 2; } console.log(randomOdd(100, -50)); console.log(randomOdd(-1, 1));

Добавлено через 54 минуты
———
Если убрать один if и использовать Math, то код резко становится нечитаемым и абсолютно непонятным:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
// Функция случайного целого числа из закрытого диапазона const random = (min, max) => Math.floor(Math.random() * (max - min + 1) + min); function randomOdd(min, max) { if (min === max && max % 2 === 0) throw new Error("Диапазон не включает нечетные числа."); // Упорядочить min и max можно несколькими способами if (min > max) [max, min] = [min, max]; if (min % 2 === 0) ++min; // Начальная база let r = random(0, Math.ceil((max - min) / 2 - 0.5)); // console.log(min, max, Math.ceil((max - min) / 2 - 0.5), r); // Для тестирования return min + r * 2; } console.log(randomOdd(100, -50)); console.log(randomOdd(-1, 1)); console.log(randomOdd(2, 3));

Источник

Читайте также:  Was java lang outofmemoryerror
Оцените статью