Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Генератор случайной последовательности / 4 сообщений из 4, страница 1 из 1
01.10.2013, 21:35
    #38413635
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор случайной последовательности
Есть задача написать генератор случайных чисел на javascript :

Есть N - чисел от 1 до N

нужно выбрать случайно M чисел.

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

Как вариант : в цикле использовать обычный генератор случайных чисел в диапазоне от [1..N] - и гонять его пока не получим M чисел.

Чем плохо, если M = N - то есть требуется перемешать последовательность - то алгоритм будет работать долго.

Сразу пришло в голову создать связанный список на N чисел от 1 до N и после каждой случайной выборки удалять этот элемент элемента и на i шаге проводить генерация числа из (N-i) чисел.

возможно есть какое то более красивое красивое решение ? использовать xor или что то еще ?
...
Рейтинг: 0 / 0
01.10.2013, 22:17
    #38413675
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор случайной последовательности
числа собирают в массив из N элементов.
выбирают рандомный индекс i - число от 0 до N-1 включительно.
берут arr[i] - выбранное число
далее arr[i] = arr[arr.length-1];

повторяют, только уже до N-2, потом до N-3 и т.д.
...
Рейтинг: 0 / 0
01.10.2013, 22:28
    #38413683
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор случайной последовательности
...
Рейтинг: 0 / 0
02.10.2013, 09:46
    #38413856
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор случайной последовательности
Usman,

спасибо ! как раз думал по поводу шафлера , очень понятный и простой способ !
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Генератор случайной последовательности / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]