Получение случайного числа из заданных. Введение
За все то время, что я занимаюсь веб-программированием мне ни раз приходилось сталкиваться с генерацией случайных чисел как в php так и в javaScript. Для этих целей в обоих языках имеются специальные функции.
Например, вывод случайного числа в php, можно реализовать вот так:
$min = 1; $max = 10; echo rand($min, $max);
А вывод случайного целого числа с помощью javaScript вот так:
var min = 1; var max = 10; var rand = Math.floor(Math.random() * (max - min + 1) + min); alert(rand);
Это все хорошо, но сегодня, я столкнулся с другой задачей по генерации случайных чисел. Было необходимо выбрать случайное число, из заданного множества. По сути, сама задача простая, но я решил ее описать, поскольку, раньше с подобным не сталкивался. Решение сводится к тому, что необходимо все значения, из которых необходимо сделать выборку, поместить в массив. А уже потом просто достать случайный элемент массива.
Получение случайного числа из заданных. Код на php
На php эта проблема решается очень просто, для получения случайного элемента массива существует специальная функция — array_rand.
$array = array(1, 3, 5, 6, 9); echo $array[array_rand($array)];
Получение случайного числа из заданных. Код на javaScript
В javaScript немного сложней. Необходимо узнать длину массива, после чего генерировать случайное число от нуля до длины массива. И потом, просто взять элемент массива, индекс которого будет равен сгенерированному числу.
// массив чисел var array = [1, 3, 5, 6, 9]; // длина массива var len_arr = array.length; // случайное число от 0 до длинны массива var rand_num = [Math.floor(Math.random() * len_arr)]; // достаем случайный элемент из массива var rand_el = array[rand_num]; // вывод alert(rand_el);