Generando números aleatorios: métodos y consejos

Discutiremos la media docena de métodos básicos de los que se derivan todas estas técnicas.

  • Fuentes físicas.
  • RESPRAMACIÓN EMPÍRICA.
  • Generadores pseudo aleatorios.
  • Simulación/juego de juego.
  • Muestreo de rechazo.
  • Transformar métodos.

Las peleas técnicas (como: «¿El muestreo de Gibbs es superior, o incluso distinguible de la cadena de Markov Monte Carlo?») Están todos en los detalles, la historia y las convenciones de citas. Cada campo y método particular acumula sus propias tradiciones. Discutiremos rápidamente los métodos fundamentales que enumeramos. Como veremos: la complejidad aumenta a medida que avanzamos a través de la lista (por lo que en algún momento las cosas ya no son fundamentales sino derivadas, lo que nos permite finalizar la lista).

Esta es la forma más básica (aunque no tan práctica en la era de la computadora) para generar variables aleatorias. Observe el cambio de una moneda real, baraja cartas reales, mezcle bolas numeradas o cuente el número de garrapatas de una fuente radiactiva real. En todo esto, la aleatoriedad proviene de principios físicos (tales dinámicas caóticas para volteretas de monedas o mecánica cuántica para la caries radiactiva).

Estas fuentes están «fuera de la informática», por lo que diremos menos sobre ellas.

Esto es lo que solía llamarse «tablas» (que a menudo se generaban a partir de procesos físicos). La observación es: que a veces
Para ejecutar una simulación, necesita acceso a instancias de variables aleatorias que se distribuyen de una manera muy precisa, pero no tiene una descripción utilizable de la distribución deseada. Pensarías que en este caso no podrías hacer nada. Pero el principio del remuestreo empírico es que puede generar aproximadamente nuevas muestras tomando muestras (con repetición o reemplazo) de una muestra anterior. Esta es la piedra angular de los métodos de arranque.

¿Cómo crear un metodo para generar números aleatorios en Java?

En la programación de Java, a menudo requerimos generar números aleatorios mientras desarrollamos aplicaciones. Muchas aplicaciones tienen la característica para generar números al azar, como verificar al usuario, muchas aplicaciones usan el OTP. El mejor ejemplo de números aleatorios es los dados. Porque cuando lo tiramos, obtenemos un número aleatorio entre 1 a 6.

En esta sección, aprenderemos cuál es un número aleatorio y cómo generar números aleatorios en Java.

Los números aleatorios son los números que usan un gran conjunto de números y selecciona un número utilizando el algoritmo matemático. Satisface las siguientes dos condiciones:

  • Los valores generados se distribuyen uniformemente en un intervalo definido.
  • Es imposible adivinar el valor futuro basado en los valores actuales y pasados.

En Java, hay tres vías para generar números aleatorios utilizando el método y las clases.

  • Los valores generados se distribuyen uniformemente en un intervalo definido.
  • Es imposible adivinar el valor futuro basado en los valores actuales y pasados.
  • Usando el método Random ()
  • Usando la clase aleatoria
  • Usando la clase ThreadLocalRandom
  • Usando el método ints () (en Java 8)
  • La clase de matemáticas Java tiene muchos métodos para diferentes operaciones matemáticas. Uno de ellos es el método Random (). Es un método estático de la clase de matemáticas. Podemos invocarlo directamente. Genera solo un número aleatorio de doble tipo mayor o igual a 0.0 y menos de 1.0. Antes de usar el método Random (), debemos importar la clase java.lang.math.

    No acepta ningún parámetro. Devuelve un doble pseudorandom que es mayor o igual a 0.0 y menos de 1.0.

    ¿Cómo generar números aleatorios en Java?

    Cuando lanzamos un doble a INT, el valor int mantiene solo la parte del número entero.

    Por ejemplo, en el código anterior, DoubleAndomNumber es 2.431392914284627. La parte total del número de DoubleandomNumber es 2 y la parte fraccional (números después del punto decimal) es 431392914284627. Entonces, RandomNumber solo contendrá el número entero Parte 2.

    Usar math.random () no es la única forma de generar números aleatorios en Java. A continuación, consideraremos cómo podemos generar números aleatorios usando la clase aleatoria.

    En la clase aleatoria, tenemos muchos métodos de instancia que proporcionan números aleatorios. En esta sección, consideraremos dos métodos de instancia, NextInt (int Bound) y NextDouble ().

    NextInt (int Bound) Devuelve un número pseudo-aleatorio de tipo int, mayor o igual a cero y menor que el valor límite.

    El parámetro unido especifica el rango. Por ejemplo, si especificamos el límite como 4, Nextint (4) devolverá un valor de tipo int, mayor o igual a cero y menos de cuatro. 0,1,2,3 son los posibles resultados de Nextint (4).

    Como este es un método de instancia, debemos crear un objeto aleatorio para acceder a este método. Vamos a intentarlo.

    Nuestra misión: ayudar a las personas a aprender a codificar de forma gratuita. Logramos esto creando miles de videos, artículos y lecciones de codificación interactiva, todo disponible gratuitamente para el público. También tenemos miles de grupos de estudio Freecodecamp en todo el mundo.

    Las donaciones a Freecodecamp se destinan a nuestras iniciativas educativas y ayudan a pagar por servidores, servicios y personal.

    ¿Cómo generar un número aleatorio de 4 cifras en Java?

    2 respuestas. Si desea generar un número desde el rango [0, 9999], usaría Random.NextInt (10000). Rand aleatorio = new Random (); Sistema.

    ¿Por qué 17 es el número más aleatorio? Descrito en el MIT como «el número menos aleatorio», según el archivo de jerga. Esto supuestamente se debe a que en un estudio en el que se pidió a los encuestados que eligieran un número aleatorio de 1 a 20, 17 fue la opción más común.

    ¿Cómo se hace de Randbet entre decimales? Si desea usar decimales, tendrá que usar una función diferente pero similar. Comience escribiendo «= rand ()». A continuación, multiplica esto por la diferencia entre los límites y agregue el límite inferior. Por ejemplo, si desea generar un número aleatorio entre 100 y 110, debe escribir «= rand ()*10+100».

    Afortunadamente, ya no necesita visitar un sitio web separado ya que Google tiene un generador de números aleatorios integrado en sus resultados de búsqueda.

    Además, ¿cómo se genera un número aleatorio entre 1000 y 9999 en Java? Respuesta del código «Java Número aleatorio entre 1000 y 9999»

    Explotado en carnavales, el hecho de que, dado una opción de cualquier número entre 1 y 10, las personas elegirán con mayor frecuencia 3 o 7. Los humanos son pésimos generadores de número aleatorio y un número inusualmente grande de ellos elegirán 37 mientras son más pequeños, pero aún así El número desigual de personas elegirá 73.

    El número entero más bajo que no pudo retomar ningún voto fue 110. ¿Seguramente el número menos amado del mundo?… más videos en YouTube.

    ¿Cuál es el número más famoso? Y el número favorito del mundo es…

    ¿Cómo crear datos aleatorios?

    Desde medir la descomposición de los isótopos radiactivos hasta pedirle a un novato que salga de VIM, hay muchas formas de generar datos aleatorios. En algunos casos, queremos que nuestros datos aleatorios simulen algunos otros datos. Es decir, tiene los mismos elementos, con una distribución similar. Aquí describo tres métodos para generar dichos datos basados ​​en algunos datos de semillas.

    Si tenemos que generar una pequeña cantidad de datos, específicamente menos que nuestros datos de semillas, el método más fácil es simplemente barajar los elementos y devolver un prefijo.

    Hay algunos inconvenientes en este método. Primero, no podemos usarlo directamente para generar más datos que nuestra semilla. Podemos extenderlo para manejar esto llamando a este método repetidamente. Sin embargo, esto comienza a producir artefactos en los datos, debido al segundo inconveniente: los datos resultantes no tienen una distribución similar; Tiene la misma distribución.

    Para ver este problema, imagine que nuestros datos de semillas son [1, 2, 3]. Queremos generar nueve elementos. El conjunto de datos [1,1,1, 2,2,2, 3,3,3] tiene la misma distribución. Sin embargo, con el método de barajamiento, nunca podemos obtener tres 1 juntos.

    Finalmente, este método significa que tenemos que poner nuestros datos en una matriz. A menudo, esto no es un problema, pero puede ser un gasto innecesario si estamos utilizando, por ejemplo, una imagen como nuestros datos de semillas.

    Otro método simple que no sufre de los inconvenientes anteriores es probar los datos de semillas repetidamente. En la práctica, esto solo significa elegir un elemento aleatorio cada vez que necesitamos.

    Este método funciona para cualquier conjunto de datos que podamos probar. Aquí hay un ejemplo usando una imagen:

    Recomiendo este método, ya que es rápido y directo implementar. También se garantiza que generará datos aleatorios sin artefactos. Si nuestros datos no admiten acceso aleatorio, entonces simplemente podemos iterar a través de ellos mientras se agregan a una lista de matrices.

    ¿Cómo generar datos aleatorios?

    La función aleatoria se puede usar para generar números decimales aleatorios entre 0 y 1, entre 0 y cualquier otro número o entre dos números específicos.

    Copie la fórmula anterior que necesita y aplique la fórmula a todas las celdas que desee, luego obtendrá los resultados como se muestra en las siguientes pantallas:

    Para generar algunos números integrales aleatorios, debe combinar las funciones RNAD e INT juntas como se muestra en la siguiente tabla:

    Aplique la fórmula anterior que necesita, luego arrastre y copie la fórmula a otras celdas que necesita, luego obtendrá los resultados como se muestra en las siguientes pantallas:

    En Excel, hay una función RNDBeween que también puede ayudarlo a crear números aleatorios de forma rápida y simple.

    • Fondo, arriba: los números más bajos y más altos del intervalo de números aleatorios que desea obtener.

    Por ejemplo, si desea generar números integrales aleatorios entre 100 y 200, aplique la siguiente fórmula en una celda vacía, arrastre y copie la fórmula en otras celdas que desee, consulte Captura de pantalla:

    Consejo: Esta función Randbeween también puede crear números positivos y negativos. Para ingresar números aleatorios entre -100 y 100, solo tiene que cambiar el valor más bajo en -100, consulte la fórmula a continuación:

    Genera números aleatorios con posiciones decimales especificadas entre dos números

    Para crear números aleatorios con posiciones decimales especificadas, es necesario cambiar la fórmula de Randbeween de la siguiente manera:

    • Fondo, arriba: los números más bajos y más altos del intervalo de números aleatorios que desea obtener.
  • Números aleatorios con una figura decimal: = aleatorio entre (bajo*10, alto*10)/10
  • ¿Cómo se pueden crear datos aleatorios en Excel?

    Bryan ha trabajado en periodismo y publicación durante más de 15 años. Durante los últimos 10 años, ha cubierto el ritmo tecnológico, incluidos dispositivos, redes sociales, seguridad y cultura web.
    Antes de trabajar como freelancer, Bryan fue el editor gerente de la próxima web. En estos días pasa su tiempo en varias publicaciones, tanto en línea como fuera, incluidos el New York Times, la ciencia popular y la próxima web, entre otras. Lee mas…

    Crear datos aleatorios para llenar un libro de trabajo de Excel es tan simple como agregar algunas fórmulas poco conocidas. Estas fórmulas son útiles al perfeccionar sus habilidades de Microsoft Excel, ya que le dan datos falsos para practicar antes de arriesgar los errores con lo real.

    Para comenzar, ingresaremos una de las pocas fórmulas en la barra de fórmula. Esta es la ventana debajo de la cinta, que se encuentra aquí.

    A partir de ahí, se trata de agregar los datos que desea y luego hacer un poco de limpieza.

    Para agregar un entero al azar, usaremos la función «RandBetween». Aquí, podemos especificar un rango de números aleatorios, en este caso, un número de uno a 1,000, luego copiarlo a cada celda en la columna debajo.

    Haga clic para seleccionar la primera celda donde desea agregar su número aleatorio.

    Copie la siguiente fórmula y péguela en la barra de fórmula de Excel. Puede cambiar el número dentro del paréntesis para satisfacer sus necesidades. Esta fórmula elige un número aleatorio entre uno y 1,000.

    Presione «Enter» en el teclado o haga clic en la flecha «verde» para aplicar la fórmula.

    ¿Cómo funciona un generador de números aleatorios?

    La clasificación de tendencias se basa en el método de clasificación predeterminado, por puntaje más alto, pero aumenta los votos que han ocurrido recientemente, lo que ayuda a surgir respuestas más actualizadas.

    Se recae en la clasificación de la puntuación más alta si no hay puestos en tendencia.

    Los generadores de números aleatorios utilizan fórmulas matemáticas que transfieren un conjunto de números a otro. Si, por ejemplo, toma un número constante n y otro número N_0, y luego toma el valor de n mod n (el operador de módulo), obtendrá un nuevo número N_1, que parece que no está relacionado con N_0. Ahora, repita el mismo proceso con N_1 y obtendrá otro número. Lo que tienes aquí es un generador (muy malo) de números aparentemente aleatorios.

    Recuerde, el método que he descrito aquí es un método de juguete que no debe usarse para nada serio. Sin embargo, ilustra el principio general.

    Si todos los documentos científicos cuyos resultados tengan dudas debido a los malos rands fuera de desaparecer de los estantes de la biblioteca, habría una brecha en cada estante tan grande como su puño.

    (Parafraseado del Capítulo 7 de recetas numéricas). Este es un texto de lectura obligada para cualquier persona que use generadores de números aleatorios para cualquier trabajo serio.

    Una de las cosas a tener en cuenta es que no hay generadores de números aleatorios ‘verdaderos’. Simplemente generan números que nos parecen aleatorios para los simples mortales.

    Uno de los ejemplos más fáciles de esto (para implementar, también) es el generador congruencial lineal. Claro, los números parecen impredecibles para usted y para mí, pero en realidad están espaciados uniformemente dentro de un campo finito.

    ¿Cómo funciona el algoritmo aleatorio?

    Los algoritmos aleatorios se utilizan cuando se presentan una restricción de tiempo o memoria, y una solución de caso promedio es una salida aceptable. Debido a la potencial salida errónea del algoritmo, se utiliza un algoritmo conocido como amplificación para aumentar la probabilidad de corrección al sacrificar el tiempo de ejecución. La amplificación funciona repitiendo el algoritmo aleatorizado varias veces con diferentes submuestras aleatorias de la entrada y comparando sus resultados. Es común que los algoritmos aleatorios amplifiquen solo partes del proceso, ya que demasiada amplificación puede aumentar el tiempo de ejecución más allá de las restricciones dadas.

    Los algoritmos aleatorios generalmente se diseñan en una de dos formas comunes: como Las Vegas o como algoritmo de Monte Carlo. Un algoritmo de Las Vegas se ejecuta dentro de un tiempo específico. Si encuentra una solución dentro de ese plazo, la solución será exactamente correcta; Sin embargo, es posible que se quede sin tiempo y no encuentre ninguna solución. Por otro lado, un algoritmo de Monte Carlo es un algoritmo probabilístico que, dependiendo de la entrada, tiene una ligera probabilidad de producir un resultado incorrecto o no producir un resultado por completo.

    Hablando prácticamente, las computadoras no pueden generar números completamente aleatorios, por lo que los algoritmos aleatorios en la informática se aproximan utilizando un generador de números pseudorandom en lugar de una verdadera fuente de número aleatorio, como el dibujo de una tarjeta.

    El juego, Wheel of Fortune, se puede jugar usando un algoritmo aleatorizado de Monte Carlo. En lugar de elegir atentamente letras, un jugador (o computadora) elige letras al azar para obtener una solución, como se muestra en la imagen a continuación. Cuantas más letras revele un jugador, más segura se vuelve un jugador en su solución. Sin embargo, si un jugador no adivina rápidamente, la posibilidad de que otros jugadores adivinen que la solución también aumenta. Por lo tanto, un algoritmo de Monte Carlo recibe una cantidad de tiempo determinista, en el que debe encontrar una «suposición» basada en la información revelada; La mejor solución que se le ocurre. Esto permite la posibilidad de estar equivocado, tal vez incluso una gran probabilidad de estar equivocado si el algoritmo de Monte Carlo no tuviera suficiente tiempo para revelar suficientes letras útiles. Pero proporcionarle un límite de tiempo controla la cantidad de tiempo que tomará el algoritmo, disminuyendo así el riesgo de que otro jugador adivine y obtenga el premio. Sin embargo, es importante tener en cuenta que este juego difiere de un algoritmo estándar de Monte Carlo ya que el juego tiene una solución correcta, mientras que para un algoritmo de Monte Carlo, la solución ‘lo suficientemente buena’ es una salida aceptable.

    ¿Qué es un generador de eventos aleatorios?

    Comenzamos con la parte fácil. La medición se basa en pequeños cambios en el comportamiento de un dispositivo electrónico diseñado para producir una salida aleatoria. Un generador de eventos aleatorio, o REG, como se utiliza para la recopilación de datos GCP, es esencialmente una aleta de monedas electrónica de alta velocidad. En lugar de cabezas y colas, el REG produce + o – pulsos en relación con un valor medio, y estos pulsos se convierten en 1 y 0, los bits que son el lenguaje de las computadoras. Los bits se pueden contar y almacenarse como muestras de una distribución matemática bien entendida de números aleatorios. El dispositivo también a menudo se llama generador de números aleatorios (RNG), que es un nombre dado a los programas de computadora que producen números pseudo aleatorios. Los dispositivos REG y RNG utilizados en el GCP son fuentes de hardware de eventos aleatorios verdaderos, fundamentalmente impredecibles 1 y 0.

    Hay tres generadores diferentes de eventos aleatorios o de números aleatorios en uso en la red GCP. Todos son electrónicos y sus diferentes fuentes de ruido blanco dependen de fluctuaciones cuánticas completamente impredecibles. El Reg de Pear se basa en el ruido de Johnson, las fluctuaciones de nivel extremadamente bajo en el flujo de electrones en una resistencia debido a las influencias térmicas. Tiene una transformación lógica incorporada (XOR) de cada otro bit de 1 a 0 o viceversa, para eliminar en principio cualquier sesgo de la salida media del dispositivo. El microreg utiliza un transistor de efecto de campo (FET) para el ruido blanco, y también tiene una etapa XOR, en este caso con una tabla de todos los bytes con números iguales de 1 y 0. El Orion usa dos diodos, cada uno produciendo independientemente un Bittream aleatorio y, en este caso, las dos señales de salida se xor’ se Xor’ entre sí. Los Oriones no tienen protección incorporada contra el sesgo, por lo que se impone un XOR calculado para este tipo en el software de huevo.

    Cuando se trata de lo que estamos midiendo, la historia se vuelve más complicada porque no hay una comprensión real del mecanismo por el cual el comportamiento de un regio puede ser alterado por pensamientos y emociones o intenciones. Sabemos empíricamente los efectos tocan la teoría de la información e implican la reducción de la entropía, y creemos que la resonancia y la coherencia son buenos descriptores metafóricos para las condiciones necesarias. Encontramos algunos puntos útiles en los modelos basados ​​en la noción de información activa de David Bohm, y esperamos que el efecto de conciencia global esté más que simplemente relacionado casualmente con modelos de sistemas dinámicos no lineales. Sin embargo, la mayor parte de lo que se puede decir es especulativo, y no inmediatamente es útil para comprender los datos empíricos. No sabemos cómo un estado mental como una intención o emoción puede informar al sistema físico para que afecte su comportamiento. Además, todas las medidas robustas que tenemos que proporcionan evidencia de los efectos anómalos son de naturaleza estadística, y la relación señal / ruido es extremadamente baja. Esto significa que generalmente no podemos estar seguros de que la firma de un efecto en cualquier análisis individual sea impulsada por la influencia hipotética de la conciencia. Los detalles escritos en los datos de instancias individuales tienen más probabilidades de ser fluctuaciones casuales que los efectos de la conciencia. Solo en concatenaciones más grandes, recolectando las señales débiles de muchos eventos separados, podemos estar satisfechos de que las tendencias y la estructura representen el efecto hipotetizado.

    Sin embargo, después de todas las advertencias, podemos decir que la evidencia de un efecto de la conciencia en los regs es fuerte. Estamos impulsados ​​por esa evidencia para inferir que existe algo como un campo de conciencia, y que las intenciones o los estados emocionales que estructuran el campo se transmiten como información que se absorbe en la distribución de valores de salida de los sistemas físicos lábiles. La salida del REG difiere de lo que se esperaría sin la influencia de la conciencia.

    Los datos provienen de fuentes aleatorias electrónicas (generadores de eventos aleatorios) que producen un flujo constante de bits impredecibles. Los datos de GCP consisten en un flujo continuo de ensayos tomados por cada huevo a una velocidad de uno por segundo. Cada ensayo es el equivalente a voltear 200 monedas imparciales y contar el número de cabezas. El software en la computadora host simplemente registra la suma de los 200 bits, o el número de cabezas, y esperamos que el resultado para cada prueba sea alrededor de 100 (hay una posibilidad de 50/50 para que un poco sea 1 o 0 ). Esta es una cantidad variable, por supuesto, dependiendo de las fluctuaciones casuales, con una distribución de curva de campana. El resultado más frecuente es 100, disminuyendo a muy pocas pruebas con puntajes menores de 70 o más que 130. La distribución para un gran número de ensayos es muy predecible, aunque las variaciones de un juicio a otro no lo son.

    ¿Cómo se generan los números aleatorios y pseudoaleatorios?

    Un generador de números pseudorandom (PRNG), también conocido como generador de bits aleatorio determinista (DRBG), [1] es un algoritmo para generar una secuencia de números cuyas propiedades se aproximan a las propiedades de las secuencias de números aleatorios. La secuencia generada por PRNG no es realmente aleatoria, porque está completamente determinada por un valor inicial, llamada semilla de PRNG (que puede incluir valores verdaderamente aleatorios). Aunque las secuencias que están más cerca de verdaderamente aleatorias se pueden generar utilizando generadores de números aleatorios de hardware, los generadores de números pseudorandom son importantes en la práctica para su velocidad en la generación de números y su reproducibilidad. [2]

    Las buenas propiedades estadísticas son un requisito central para la salida de un PRNG. En general, se requiere un análisis matemático cuidadoso para tener alguna confianza en que un PRNG genera números que están lo suficientemente cerca de al azar para adaptarse al uso previsto. John Von Neumann advirtió sobre la mala interpretación de un PRNG como un generador verdaderamente aleatorio, y bromeó que «cualquier persona que considera métodos aritméticos para producir dígitos aleatorios está, por supuesto, en un estado de pecado». [3]

    En la práctica, el resultado de muchos PRNG comunes exhibe artefactos que les hacen fallar las pruebas de detección de patrones estadísticos. Éstos incluyen:

    • Períodos más cortos de lo esperado para algunos estados de semillas (tales estados de semillas pueden llamarse «débiles» en este contexto);
    • Falta de uniformidad de distribución para grandes cantidades de números generados;
    • Correlación de valores sucesivos;
    • Mala distribución dimensional de la secuencia de salida;
    • Las distancias entre donde ocurren ciertos valores se distribuyen de manera diferente a las de una distribución de secuencia aleatoria.

    Los defectos exhibidos por los prngs defectuosos van desde un innoticable (y desconocido) hasta muy obvio. Un ejemplo fue el algoritmo de número aleatorio RANDU utilizado durante décadas en las computadoras mainframe. Era seriamente defectuoso, pero su insuficiencia no fue detectada durante mucho tiempo.

    ¿Cómo se generan los números pseudoaleatorios?

    Hace un tiempo, Wolfram (RE) introdujo autómatas celulares elementales, un caso especial de autómatas celulares que vive en una dimensión. Un aspecto cursi de estos autómatas es que las reglas son fáciles de describir y numerar. Como cualquier autómata, se le da un contexto, una región de interés, y ofrece un resultado dependiendo del contexto. Por ejemplo, podemos tener las reglas:

    La columna de salida se puede ver como un número, en este caso 11010101, 0xd5 o 213. Esta es la regla 213.

    Puede ser tentador usarlos para generar caos, ruido y números aleatorios. ¿Pero es esa una buena idea?

    Von Neumann propuso el método de la plaza media para generar números pseudo-aleatorios en 1949, en un artículo publicado un poco más tarde. El método es simple: tomas una semilla, dices 4 dígitos de largo, lo cuadras y extraes los 4 dígitos del medio, que se convierten en la próxima semilla. Por ejemplo:

    Todavía estoy experimentando con funciones hash, y estaba jugando con la función de hash Zobrist [1] que es mejor conocida por su uso en los motores de ajedrez. La función hash es conceptualmente simple: necesita una tabla grande de números aleatorios, indexado, en una aplicación de ajedrez, por la posición en el tablero de la pieza y por la pieza misma. Para calcular un hash para una configuración completa de la placa, simplemente XOR todos los números aleatorios juntos. La parte difícil es elegir los números aleatorios.

    De vez en cuando, necesitamos una secuencia aleatoria. Ya sea para probar el rendimiento de una estructura de datos o ejecutar pruebas unitarias probabilísticas, el Rand primitivo proporcionado desde su lenguaje de programación favorito tiene varias limitaciones. Primero, se conoce desde hace un tiempo que si la mayoría de las implementaciones de la función de la biblioteca estándar de C no son muy aleatorias, a pesar de ser «lo suficientemente buenas» en muchos casos. En segundo lugar, y lo que es más importante, no le permite controlar fácilmente el período ni generar una permutación, por ejemplo.

    ¿Cómo se presentan los números aleatorios y pseudoaleatorios?

    El generador de números pseudo aleatorios (PRNG) se refiere a un algoritmo que utiliza fórmulas matemáticas para producir secuencias de números aleatorios. Los PRNG generan una secuencia de números que se aproximan a las propiedades de los números aleatorios. Un PRNG comienza desde un estado inicial arbitrario usando un estado de semilla. Muchos números se generan en poco tiempo y también se pueden reproducir más tarde, si se conoce el punto de partida en la secuencia. Por lo tanto, los números son deterministas y eficientes.

    Con el advenimiento de las computadoras, los programadores reconocieron la necesidad de un medio para introducir aleatoriedad en un programa de computadora. Sin embargo, por sorprendente que parezca, es difícil lograr que una computadora haga algo por casualidad ya que la computadora sigue las instrucciones dadas a ciegas y, por lo tanto, es completamente predecible. No es posible generar números verdaderamente aleatorios a partir de cosas deterministas como las computadoras, por lo que PRNG es una técnica desarrollada para generar números aleatorios usando una computadora.

    El generador congruencial lineal es el algoritmo más común y más antiguo para generar números pseudo-aleatorios. El generador se define por la relación de recurrencia:

    Generamos el siguiente entero aleatorio utilizando el entero aleatorio anterior, las constantes enteras y el módulo entero. Para comenzar, el algoritmo requiere una semilla inicial, que debe ser proporcionada por algunos medios. La aparición de aleatoriedad se proporciona realizando la aritmética del módulo.

    Artículos Relacionados:

    Más posts relacionados:

    Deja una respuesta

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