JavaScript: generar un n煤mero aleatorio en el rango

    Introducci贸n

    Nosotros, como desarrolladores de software, a menudo nos encontramos con situaciones en las que necesitamos insertar una dosis de aleatoriedad en nuestro c贸digo.

    En este art铆culo, veremos c贸mo generar n煤meros aleatorios en JavaScript. Tambi茅n abordaremos algunos m茅todos integrados para tratar con n煤meros aleatorios. Al final, haremos un buen uso de este conocimiento escribiendo una funci贸n para simular un dado de seis lados.

    Generando n煤meros aleatorios en JavaScript

    Math.random() en JavaScript genera un n煤mero aleatorio de punto flotante (decimal) entre 0 y 1 (incluido 0, pero no 1). Veamos esto llamando a:

    console.log(Math.random())
    

    Esto generar谩 un n煤mero de punto flotante similar a:

    0.9261766792243478
    

    Esto es 煤til si se trata de porcentajes, ya que cualquier valor entre 0 y 1, redondeado a dos lugares decimales, se puede considerar como un percentil.

    Generaci贸n de n煤meros enteros aleatorios en rango

    Sin embargo, generalmente no tratamos con n煤meros de punto flotante en el rango de 0 a 1. Entonces, veamos una forma de redondear n煤meros de punto flotante.

    Podemos redondear hacia abajo un n煤mero de punto flotante usando Math.floor(). De manera similar, podemos redondear un n煤mero mediante el Math.ceil() funci贸n:

    console.log(Math.floor(3.6))
    console.log(Math.ceil(3.6))
    

    Esto nos dar谩 la salida:

    3
    4
    

    Generemos un n煤mero aleatorio entre min y max, No inclu铆do max:

    function randomNumber(min, max){
        const r = Math.random()*(max-min) + min
        return Math.floor(r)
    }
    

    Alternativamente, podr铆amos haber incluido max con el Math.ceil() funci贸n en su lugar.

    Nos estamos multiplicando con (max-min)para transformar la gama [0,1) en [0, max-min). A continuaci贸n, para obtener un n煤mero aleatorio en el rango requerido, estamos agregando min. Finalmente, estamos redondeando esto a un n煤mero entero usando Math.floor().

    Llamemos a este m茅todo varias veces y observemos los resultados:

    for (var i = 0; i < 10; i++) {
      console.log(randomNumber(0, 10))
    }
    

    Esto generar谩 algo similar a:

    8
    3
    3
    0
    1
    1
    8
    2
    8
    8
    

    Conclusi贸n

    La generaci贸n de n煤meros pseudoaleatorios en un programa se puede utilizar para simular la imprevisibilidad de un enemigo en el juego, o para la aleatorizaci贸n de bosques en un juego de bloques que todos conocemos y amamos. Tambi茅n se puede utilizar para simular entradas aleatorias mientras prueba otro programa que escribi贸.

    De cualquier manera, generar un n煤mero aleatorio es una herramienta importante en el conjunto de herramientas de cualquier ingeniero y debe expandirse tanto como sea posible con diferentes m茅todos y algoritmos de generaci贸n. Este art铆culo fue solo el primer paso para aprender a generar n煤meros aleatorios.

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *