Ограниченная псевдослучайная последовательность неповторяющихся чисел в JavaScirpt
При разработке различных программ на JavaScirpt, периодически встает задача сгенерировать псевдослучайную последовательность неповторяющихся чисел. Один из вариантов реализации я сейчас Вам и покажу. Заметьте, что, однако, это далеко не идеальная реализация, так она, например, не обеспечивает должной криптостойкости.
Код:
// функция генерирует случайное число диапазоне [min,mах]
function getRandomNumber(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
// неповторяющаяся последовательность случайных чисед
function randomSequence(min, max, howMuch) {
// массив в который складываются числа
let numbers = [];
// пока длина массива не равна требуемой длине последовательности
while ( numbers.length !== howMuch ) {
// получаем случайное число
let number = getRandomNumber(min, max);
// если число найдено в последовательности
// то переходим на следующую итерацию
// так как в последовательности нам не нужны повторяющиеся значения
if (-1 !== numbers.indexOf(number)) {
} else numbers.push(number); // если значение еще нет добавляем его в массив
}
return numbers;
}
Вызов:
let seq = randomSequence(1,100,7);
console.log(seq);
Таким образом, с помощью данного скрипта на JavaScirpt можно сгенерировать последовательность чисел в заданном диапазоне, причем так, чтобы эти числа не повторялись.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.