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.

Другие вопросы по тегам