Numero al azar del 1 al 10

calculadora de números

Un generador de números pseudoaleatorios (PRNG) suele programarse utilizando una función matemática aleatoria para seleccionar un número “aleatorio” dentro de un rango establecido. Estos generadores de números aleatorios son pseudoaleatorios porque el programa informático o el algoritmo pueden tener un sesgo de selección no intencionado. En otras palabras, la aleatoriedad de un programa informático no es necesariamente un evento orgánico y verdaderamente aleatorio.

Un verdadero generador de números aleatorios (TRNG) se basa en la aleatoriedad de un evento físico que es externo al ordenador y su sistema operativo. Ejemplos de este tipo de sucesos son los picos de ruido atmosférico o los puntos de descomposición de un material radiactivo. Un verdadero generador de números aleatorios recibe información de este tipo de eventos impredecibles para producir un número verdaderamente aleatorio.

tabla de números aleatorios

Este generador de números aleatorios (RNG) ha generado algunos números aleatorios para usted en la tabla de abajo. Haga clic en “Más números aleatorios” para generar algunos más, haga clic en “personalizar” para modificar los rangos de números (y el texto si es necesario). Para una explicación completa de la naturaleza de la aleatoriedad y los números aleatorios, haga clic en el enlace del menú ‘Información’.

Esta utilidad genera números aleatorios, ¡y su uso es completamente gratuito! Los números pueden ser utilizados para juegos, elegir números de lotería o cualquier otro propósito. Siempre que quiera generar un nuevo conjunto de números, simplemente haga clic en “Más números aleatorios”.

generador de números aleatorios simple

Imagina que tienes que generar un número aleatorio uniforme del 1 al 10. Es decir, un número entero del 1 al 10 inclusive, con la misma probabilidad (10%) de seleccionar cada uno. Pero supongamos que tiene que hacerlo sin acceso a monedas, ordenadores, material radiactivo o cualquier otro tipo de acceso a generadores de números aleatorios (pseudo) tradicionales. Todo lo que tienes es una sala de personas.

Así que decides preguntar a unas cuantas personas más. Continúa preguntando a la gente y contando sus respuestas, redondeando los números no enteros e ignorando las respuestas de las personas que piensan que del 1 al 10 se incluye el 0. Finalmente, empieza a ver que el patrón no es plano en absoluto:

La intuición de esto es relativamente sencilla. Todo lo que queremos hacer es desplazar la masa de probabilidad donde las barras son mayores del 10%, y desplazarla a las barras donde son menores del 10%. Se puede imaginar que esto es como cortar y reordenar las barras para que estén todas niveladas:

Ampliando esta intuición, podemos ver que esa función debería existir. De hecho, debería haber muchas funciones diferentes (reordenamientos). Por poner un ejemplo extremo, digamos que “cortamos” cada barra en bloques infinitesimales, y que podemos utilizar estos bloques para construir la distribución con la forma que queramos (como Lego).

generador de números aleatorios con semilla

Estamos devolviendo una función (tomada de la programación funcional) que al ser llamada, devolverá un número entero aleatorio entre los valores inferior y superior, ambos inclusive. Decimos ‘inclusivo’ porque queremos incluir tanto abajo como arriba en el rango de números que pueden ser devueltos. De esta manera, getRandomizer( 1, 6 ) devolverá 1, 2, 3, 4, 5 o 6.

Math.floor redondea el número hacia abajo al entero más cercano. Así que ahora tenemos todos los enteros entre 0 y arriba-abajo. El 1 parece confuso, pero tiene que estar ahí porque siempre estamos redondeando hacia abajo, así que el número superior nunca se alcanzará sin él. El decimal aleatorio que generamos debe estar en el rango de 0 a (1+superior-inferior) para que podamos redondear hacia abajo y obtener un int en el rango de 0 a superior-inferior

NOTA: Si pasas un valor no entero o el número mayor primero obtendrás un comportamiento no deseado, pero a menos que alguien lo solicite no voy a profundizar en el código de comprobación de argumentos ya que está bastante lejos de la intención de la pregunta original.

Leer más  Lecturas cortas para niños

Entradas relacionadas