Números aleatorios en JavaScript
Los números aleatorios tienen todo tipo de usos, desde lo divertido hasta lo práctico. La mayoría de los juegos involucran algún tipo de aleatoriedad en forma de dados o cartas barajadas. Si desea mostrar una cita aleatoria cuando alguien visita su página, necesita una fuente de aleatoriedad. Los números aleatorios no son solo diversión y juegos, los números aleatorios se usan en criptografía, para muestreo aleatorio, para modelar y para poner las cosas en orden aleatorio (como los candidatos en una boleta). Algunos de estos usos no usan números directamente , pero puede convertir de números aleatorios a elementos aleatorios colocando los elementos que desea elegir en filas y seleccionando aleatoriamente una fila. En programación, las matrices funcionan bien para esto. Los números aleatorios no siempre son verdaderamente aleatorios. Si tira un juego de dados justos, obtendrá números aleatorios, sin embargo, los métodos que utilizan las computadoras para elegir números aleatorios a menudo son números seudoaleatorios, lo que significa que parecen ser aleatorios en la superficie, pero en realidad son predecibles o series repetitivas Para algunas cosas, esta no es una diferencia importante. Si está mostrando una cita aleatoria o una broma cada vez que alguien carga su página web, probablemente no importa que alguien pueda predecir cuándo aparecerá una cita específica y usted puede usar con seguridad números pseudoaleatorios (para el caso, probablemente solo muestre sus citas en el orden en que las escribió.) Si está tratando de hacer una prueba de drogas al azar de los atletas del Tour de Francia, es crucial que los atletas no puedan predecir cuándo o si serán evaluados.

El objeto JavaScript Math incluye un método que proporciona números pseudoaleatorios. A diferencia de muchos otros lenguajes de programación, JavaScript no le permite inicializar el generador de números con su propia fuente de aleatoriedad. Las diferentes implementaciones difieren en cuán cerca de los números proporcionados son realmente aleatorios, pero en general, deberían ser lo suficientemente buenos como para usarlos para usos divertidos o artísticos, pero si necesita números aleatorios para fines legalmente regulados o de seguridad, debería encontrar una mejor fuente de aleatoriedad los math.random () El método devuelve un número aleatorio que es 0 o entre 0 y 1. Algunas versiones del navegador Opera no cumplen con los estándares math.random () método que muy rara vez devolverá 1. Necesita manejar de alguna manera este resultado inesperado; la sugerencia más fácil que he visto es usar el operador de módulo con uno contra el valor devuelto por math.random (), esto devolverá el valor original si el número aleatorio está en el rango definido y 0 si obtuvo un 1. Además, encuentro que no necesito un decimal aleatorio menor que uno, sino un entero aleatorio. Para obtener un entero aleatorio, multiplica el valor de math.random () por el número de posibles números aleatorios que desea (X) y encontrar el número entero anterior o siguiente. El objeto matemático proporciona métodos de piso y techo que puede usar para este propósito. Si usa el math.floor () método, obtendrá un número de 0 a (X-1). Si usas el math.ceiling () método obtendrá un número entero de 1 a X.

Para encontrar un número aleatorio entre 0 y (X-1), use:

Math.floor ((Math.random ()% 1) * X)

Estos son particularmente útiles para encontrar un elemento de matriz aleatorio.

Para encontrar un número aleatorio entre 1 y X, use:

Math.ceiling ((Math.random ()% 1) * X)

Tareas como esta que son bastante comunes pero requieren bastante tipeo son buenos candidatos para convertirse en una función.

Para una discusión sobre la diferencia entre números verdaderamente aleatorios y los números pseudoaleatorios que estamos usando aquí, una fuente de números verdaderamente aleatorios, y algunos ejemplos de cosas divertidas que puede hacer con números aleatorios o pseudoaleatorios, visite www.random. org

Instrucciones De Vídeo: Como generar números aleatorios en javascript (Abril 2024).