Articles

Cómo usar JavaScript Math.random () como un generador de números aleatorios

Posted by admin

a menudo, mientras desarrolla proyectos, se encontrará buscando formas de generar números aleatorios.

los casos de uso más comunes para generar números aleatorios son los juegos de azar como los dados rodantes, barajar cartas y girar las ruedas de la ruleta.

en esta guía, aprenderá cómo generar un número aleatorio utilizando el método Math.random() construyendo un juego de mini dados.

La Matemática.,método random ()

el objeto Math en JavaScript es un objeto incorporado que tiene propiedades y métodos para realizar cálculos matemáticos.

un uso común del objeto Math es crear un número aleatorio utilizando el método random().

const randomValue = Math.random();

Pero Math.random() método en realidad no devolver un número entero. En su lugar, devuelve un valor de punto flotante entre 0 (inclusivo) y 1 (exclusivo)., Además, tenga en cuenta que el valor devuelto desde Math.random() es de naturaleza pseudo-aleatoria.

Los números aleatorios generados por Math.random() pueden parecer aleatorios, pero esos números se repetirán y eventualmente mostrarán un patrón no Aleatorio durante un período de tiempo.

esto se debe a que la generación algorítmica de números aleatorios nunca puede ser verdaderamente aleatoria en naturaleza. Es por eso que los llamamos generadores de números pseudo-aleatorios (PRNGs).

para obtener más información sobre el método Math.random() puede consultar esta guía.,

Función Generador de números aleatorios

ahora usemos el método Math.random() para crear una función que devolverá un entero aleatorio entre dos valores (inclusive).

const getRandomNumber = (min, max) => { return Math.floor(Math.random() * (max - min + 1)) + min;};

Vamos a romper la lógica aquí.

el método Math.random() devolverá un número de coma flotante entre 0 y 1 (exclusivo).

así que los intervalos serían los siguientes:

[0 .................................... 1)[min .................................... max)

para factorizar el segundo intervalo, reste min de ambos extremos. Por lo que le daría un intervalo entre 0 y max-min.,

[0 .................................... 1)[0 .................................... max - min)

Así que ahora, para obtener un valor aleatorio, debe hacer lo siguiente:

const x = Math.random() * (max - min)

Aquí x es el valor aleatorio.

actualmente, max está excluido del intervalo. Para hacerlo inclusivo, agregue 1. Además, debe agregar el min que se restó anteriormente para obtener un valor entre [min, max).

const x = Math.random() * (max - min + 1) + min

bien, así que ahora el último paso restante es asegurarse de que x es siempre un entero.,

const x = Math.floor(Math.random() * (max - min + 1)) + min

podría utilizar la etiqueta Math.round() método en lugar de floor(), pero que le daría una distribución no uniforme. Esto significa que tanto max como min tendrán Media oportunidad de salir como resultado. Usando Math.floor() le dará una distribución perfectamente uniforme.

así que ahora que tiene una comprensión justa de cómo funciona una generación aleatoria, usemos esta función para simular dados rodantes.,

El juego de dados rodantes

en esta sección, vamos a crear un mini juego de dados realmente simple. Dos jugadores ingresan su nombre y lanzarán los dados. El jugador cuyos dados tienen un número más alto ganará la ronda.

primero, cree una función rollDice que simule la acción para tirar los dados.

dentro del cuerpo de la función, llame a la función getRandomNumber() con 1 y 6 como argumentos. Esto le dará cualquier número aleatorio entre 1 y 6 (ambos inclusive) al igual que cómo funcionarían los dados reales.,

const rollDice = () => getRandomNumber(1, 6);

a continuación, cree dos campos de entrada y un botón como se muestra a continuación:

cuando se haga clic en el botón ‘Roll Dice’, obtenga los nombres de los jugadores de los campos de entrada y llame a la funciónrollDice() para cada jugador.

puede validar los campos de nombre de los jugadores y embellecer el marcado con algo de CSS. Con el propósito de ser breve, lo mantengo simple para esta guía.

Eso es todo. Puedes ver la demo aquí.

conclusión

así que generar números aleatorios en JavaScript no es tan aleatorio después de todo., Todo lo que estamos haciendo es tomar algunos números de entrada, usando algunas matemáticas, y escupir un número pseudo-aleatorio.

para la mayoría de las aplicaciones y juegos basados en navegador, esta cantidad de aleatoriedad es suficiente y sirve a su propósito.

Eso es todo para esta guía. Mantente a salvo y sigue codificando como una bestia.

Leave A Comment