Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Sugerencia] Una mejor solucion que la sugerida

Estuve investigando y segun la pagina Mnd web docs y videos de youtube, cuando se utiliza Math.round en el caso de un numero aleatorio, ese numero aleatorio puede salir del intervalo, es decir si el maximo es 10, te puede dar un valor aleatorio 11.

 function sorteo(n) { 
            return Math.round(Math.random()*n);
        }   

    var numeroPensado = sorteo(10);

Entonces, la recomendacion de la pagina Mnd web docs es usar lo siguiente:

Obtener un número entero aleatorio entre dos valores (incluyendo ambos)

La función getRandomInt() descrita anteriormente incluye el valor mínimo, pero excluye al máximo. ¿Y si necesitamos que el resultado incluya tanto al mínimo como al máximo? La siguiente función getRandomIntInclusive() lo consigue. https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Math/random#obtener_un_n%C3%BAmero_entero_aleatorio_entre_dos_valores_incluyendo_ambos

function getRandomIntInclusive(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1) + min);
}
// Ahora, tanto el valor mínimo como el máximo están incluidos en el resultado.

Aplicando esto y eliminando el minimo porque es 0, mi codigo quedo asi:

function sorteo(n) {

        return Math.floor(Math.random() * (n + 1));
    }

    var n = parseInt(prompt("Ingrese un numero"));

    var numeroPensado = sorteo(n);
    var numeroLanzado = parseInt(prompt("Ingrese un numero entre 0-" + n));

¿que opinan?

1 respuesta
solución!

¡Hola Evelin! ¿Cómo estás?

Gracias por compartir tu investigación sobre el uso de Math.round en números aleatorios. Es importante tener en cuenta todas las posibles soluciones para un problema y elegir la más adecuada. La función getRandomIntInclusive que encontraste en la documentación de Mozilla es una buena alternativa para obtener un número aleatorio que incluya tanto el valor mínimo como el máximo.

Respecto a tu código, parece que lo has modificado correctamente para que funcione con la función getRandomIntInclusive. Sin embargo, ten en cuenta que si el usuario ingresa un número menor que cero, tu código no funcionará correctamente. Podrías agregar una validación para asegurarte de que el número ingresado sea mayor o igual a cero.

¡Felicidades por la investigación y por tu dedicación! Un saludo. :)

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!