Pregunta Generar número aleatorio entre dos números en JavaScript


¿Hay alguna manera de generar un número aleatorio en un rango específico (por ejemplo, de 1 a 6: 1, 2, 3, 4, 5 o 6) en JavaScript?


1243
2018-02-10 16:41


origen


Respuestas:


Si quisiera obtener entre 1 y 6, calcularía:

Math.floor(Math.random() * 6) + 1  

Dónde:

  • 1 es el número de inicio
  • 6 es el número de resultados posibles (1 + inicio (6) - fin (1))

1540
2018-02-10 16:45



function randomIntFromInterval(min,max)
{
    return Math.floor(Math.random()*(max-min+1)+min);
}

Lo que hace "extra" es que permite intervalos aleatorios que no comienzan con 1. De modo que puede obtener un número aleatorio de 10 a 15, por ejemplo. Flexibilidad.


1660
2017-08-29 09:25



Math.random ()

Desde el Mozilla Documentación de la red de desarrolladores:

// Returns a random integer between min (include) and max (include)

Math.floor(Math.random() * (max - min + 1)) + min;

Ejemplos útiles:

// 0 -> 10
Math.floor(Math.random() * 11);

// 1 -> 10
Math.floor(Math.random() * 10) + 1;

// 5 -> 20
Math.floor(Math.random() * 16) + 5;

// -10 -> (-2)
Math.floor(Math.random() * 9) - 10;

189
2018-06-11 00:23



Otras soluciones

  • (Math.random() * 6 | 0) + 1
  • ~~(Math.random() * 6) + 1

75
2017-11-09 10:08



La función Math.random () devuelve un punto flotante, pseudoaleatorio   número en el rango [0, 1); es decir, desde 0 (inclusive) hasta, pero no   incluyendo 1 (exclusivo)

Vamos a add el min  randomly de 0 a max-min

Caso 0

min + 0 * (max-min) = min

Caso 1

min + 1 * (max-min) = máximo

Caso aleatorio usando Math.random 0 <= r <1

min + r * (max-min) = X, dónde X tiene rango de min <= X < máximo

El resultado anterior X es un numérico al azar Sin embargo, debido a Math.random () nuestro límite izquierdo es inclusivo, y el límite correcto es exclusivo. Para incluir nuestro límite correcto aumentamos el límite correcto en 1 y bajamos el resultado.

function generateRandomInteger(min, max) {
  return Math.floor(min + Math.random()*(max+1 - min))
}

Para obtener el número aleatorio

generateRandomInteger(-20, 20);


28
2018-04-03 11:45



var x = 6; // can be any number
var rand = Math.floor(Math.random()*x) + 1;

15
2018-02-10 16:46



O, en Guion bajo

_.random(min, max)

14
2017-10-03 01:52



jsfiddle: https://jsfiddle.net/cyGwf/477/

Entero aleatorio: para obtener un entero aleatorio entre min y max, usa el siguiente código

function getRandomInteger(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min;
}

Número de punto flotante aleatorio: para obtener un número aleatorio de coma flotante entre min y max, usa el siguiente código

function getRandomFloat(min, max) {
  return Math.random() * (max - min) + min;
}

Referencia: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random


13
2018-01-25 04:33