Introducción
Contenido
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.
Te puede interesar:JavaScript: == vs === OperadorGenerando 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:
Te puede interesar:JavaScript: eliminar una propiedad de un objeto0.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.
Te puede interesar:Envío de notificaciones con notificador de node (Mac, Windows, Linux)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:
Te puede interesar:JavaScript: compruebe si el objeto es una matriz3
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:
Te puede interesar:Reemplazar las apariciones de una subcadena en una cadena con JavaScriptfor (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ó.
Te puede interesar:JavaScript: compruebe si la primera letra de una cadena es mayúsculaDe 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.