Главная > Колян учится на программиста > Javascript. Случайное число. Перемешать массив.

Javascript. Случайное число. Перемешать массив.

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

Задача.
Функция получает массив чисел и возвращает массив, перемешанный в случайном порядке, то есть, меняет расположение элементов в случайном порядке.

Решение.
Данную задачу я решил бы следующим образом. Пусть N – число элементов в массиве. Тогда мы в цикле делаем N-1 итерацию. В каждой итерации получаем случайный индекс массива, исключая первый или последний элемент массива (для определенности пусть будет последний). Т.е. в диапазон случайных индексов может попасть индекс любого элемента, кроме последнего. И меняем местами следующие элементы: со случайным индексом и последний. Например, пусть исходный массив состоит из элементов [0,1,2,3,4,5,6,7,8,9]. Т.е. изначально индекс элемента совпадает с его значением. Случайный индекс мы будем получать в диапазоне 0-8. В первой итерации, например, выпадает индекс 3 – значение 3. Мы меняем местам элемент 3 с элементом 9. Получаем [0,1,2,9,4,5,6,7,8,3]. В следующей итерации, например, выпадает 7. Меняем 7 с последним элементом 3. Получаем [0,1,2,9,4,5,6,3,8,7]. И таким образом N-1, т.е. 9 итераций.
Ну, и отдельной подзадачей, нужно написать функцию, которая будет возвращать случайное целое число из указанного диапазона. Эта функция, наверняка, пригодится в будущем.

Код javascript:



  1. Комментариев пока нет.
  1. Трекбеков пока нет.