Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Duda - Generación Número Random

Tengo una duda: si el rango está entre 0 y 10 y estamos usando este codigo,
let numeroMaximoPosible = 10;
let numeroSecreto = Math.floor(Math.random()*numeroMaximoPosible)+1;

En el momento en que math.random genere el número 1, seria (1*10)+1 = 11, por lo que se estaría pasando del rango de números seleccionado. Cómo se puede arreglar este inconveniente?

1 respuesta

Hola, Maria.

Entiendo tu preocupación, pero parece que hay un pequeño malentendido en la interpretación del código. Vamos a desglosarlo:

El método Math.random() genera un número decimal aleatorio entre 0 (inclusive) y 1 (exclusivo). Esto significa que nunca llegará a ser 1. Por lo tanto, cuando multiplicas Math.random() por numeroMaximoPosible (que es 10 en este caso), el resultado será un número decimal entre 0 (inclusive) y 10 (exclusivo).

Luego, al aplicar Math.floor() a ese resultado, obtienes un número entero entre 0 y 9. Finalmente, al sumar 1, el rango de numeroSecreto se convierte en un número entero entre 1 y 10, que es exactamente lo que deseas.

Por ejemplo:

  • Si Math.random() genera 0.999, entonces 0.999 * 10 es 9.99, y Math.floor(9.99) es 9. Al sumar 1, obtienes 10.
  • Si Math.random() genera 0, entonces 0 * 10 es 0, y Math.floor(0) es 0. Al sumar 1, obtienes 1.

Por lo tanto, el código que estás utilizando está correcto para generar un número aleatorio entre 1 y 10, sin exceder ese rango.

Espero haber aclarado tu duda y que esto te sea de ayuda. ¡Bons estudios!