2016-05-29 2 views
1

Я хочу получить случайное число из (0,2,6,8,4) или таких диапазонов. В настоящее время я петлю, пока не получу соответствующий номер.Получение случайных чисел из нерегулярных диапазонов

boxNum = getRandomNum(0, 8); 

    while (boxNum == 1 || boxNum == 3 || boxNum == 5 || boxNum == 7)) 
    boxNum = getRandomNum(0, 8); 

Есть ли другой способ сделать это? Цикл while разбивает страницу после нескольких поворотов.

+3

Почему бы не сделать произвольный выбор из массива действительных чисел? Ваш метод может * никогда не преуспеть. – jonrsharpe

+0

Какова ваша реализация 'getRandomNum'? Я рекомендую 4-й алгоритм с MDN-страницы в ['Math.random()'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random). – 4castle

+0

Функция getRandomNum (мин, макс.) { return Math.floor (Math.random() * (max - min + 1)) + мин; } – leoOrion

ответ

1

Pretty Simple Вы сохраняете нужное значение в массиве. Получите значение от него случайным образом.

var RangeOfnumber = [0,2,4,6,8]; 
function getRandomNumber(){ 
var randomNumGen= RangeOfnumber[Math.floor(Math.random()*RangeOfnumber.length)]; 
return randomNumGen; 
    } 
1

Хмм ... 2 * getRandomNum (0,4)?

+0

Сделано несколько предположений на основе существующего решения ... – Dave

+0

Не уверен, что это сработает. Время от времени диапазон не равномерно разнесен. – leoOrion

Смежные вопросы