Valor aleatorio en cualquier intervalo
Problema:
Se trata de generar numeros aleatorios más allá del intervalo 0-1
Todos los lenguajes de programación tienen alguna forma de generar números aleatorios. En Javascript es el método math.random( ), pero esto genera un número entre 0 hasta 1 (sin llegar a 1) ¿Y siquiero un valore entre 1 y 36 por ejemplo?
Solución
Partimos del número entre 0 y 1 y aplicamos algo de matemáticas
Si el número mínimo que queremos es por ejemplo 5, y random nos da como mímino 0 pues basta con sumar 5 al número generado. Si el máximo número que queremos es por ejemplo 30 pues multiplicamos el aleatorio por 3, edondemaos (el máximo será 30*0.9999 que es 29 y le quito 4 para tener como máximo 30. (29 - 4 + 5 = 30)
Ejemplo
function numAzar(min, max)
let rnd = Math.random();
let resdo = Math.floor(rnd*(max - min + 1)) + min;
return resdo;
}
console.log( numAzar(5, 30));
Si llamas a la función numAzar(5, 30) te dará un número entre 5 y 30 ambos incluídos.
Fíjate si el random( ) sale 0 la variable resdo toma el valor 5.
Si el random( ) da 0.9999 (el máx) resdo toma el valor 30: que viene de 0.999*(30 - 5 + 1) redondeado por abajo es 25, le sumas 5 (el mínimo) y tienes 30, el máximo valor del intervalo.