Random() возвращает 1 или -1
Я работаю над выражениями After Effetcs. Я пытаюсь использовать случайную функцию, чтобы вернуть 1 или -1, но никогда не 0.
Мне нужно вернуть целые числа в диапазоне от 10 до 20 или от -20 до -10.
Кажется, все просто, но я не могу найти, как это сделать. Любая идея?
Спасибо за вашу помощь!
4 ответа
Вы можете взять коэффициент два и заменить ноль на -1
,
function random() {
return Math.floor(Math.random() * 2) || -1;
}
var i = 10;
while (i--) console.log(random());
Я украл некоторое вдохновение от получения случайного значения из массива JavaScript
var myArray = [1, -1]
var rand = myArray[Math.floor(Math.random() * myArray.length)];
console.log(rand);
Поместите любое число в этот массив.
Все ответы на этот вопрос хороши, но я подумал, что еще могу добавить это:)
console.log("1 or -1: ", (()=>{if(Math.random() > 0.5) return 1; else return -1})())
console.log("Between 10 and 20: ", Math.floor(Math.random()*11+10));
console.log("Between -10 and -20: ", Math.floor(Math.random()*11+10) * -1);
Большое спасибо за эти ответы. Я использовал что-то вроде этого, и это работает, но, возможно, это не идеально:
random(10,20)*(Math.round(random())-0.5)*2
Я не уверен, что вероятность получить 1 или -1 точно 1 в 2.