Ограниченная псевдослучайная последовательность неповторяющихся чисел в JavaScirpt

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


При разработке различных программ на 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 можно сгенерировать последовательность чисел в заданном диапазоне, причем так, чтобы эти числа не повторялись.


Источник: myrusakov.ru

Комментарии: