Articulo de referencia

Lista de generadores de números aleatorios

Los generadores de números aleatorios son importantes en muchos tipos de aplicaciones técnicas, incluyendo física , ingeniería o estudios matemáticos computacionales (por ejempl...

Los generadores de números aleatorios son importantes en muchos tipos de aplicaciones técnicas, incluyendo física , ingeniería o estudios matemáticos computacionales (por ejemplo, simulaciones de Monte Carlo ), criptografía y juegos de azar (en servidores de juegos ).

Esta lista incluye muchos tipos comunes, independientemente de su calidad o aplicabilidad a un caso de uso determinado.

Generadores de números pseudoaleatorios (PRNG)

Los siguientes algoritmos son generadores de números pseudoaleatorios .

Algoritmos criptográficos

Los algoritmos de cifrado y las funciones hash criptográficas pueden utilizarse como generadores de números pseudoaleatorios de muy alta calidad. Sin embargo, por lo general son considerablemente más lentos (normalmente entre 2 y 10 veces más rápidos) que los generadores de números aleatorios rápidos no criptográficos.

Estos incluyen:

Algunos generadores de números pseudoaleatorios criptográficamente seguros no se basan en algoritmos de cifrado, sino que intentan vincular matemáticamente la dificultad de distinguir su salida de una secuencia aleatoria "verdadera" con un problema computacionalmente complejo. Estos enfoques son teóricamente importantes, pero resultan demasiado lentos para ser prácticos en la mayoría de las aplicaciones. Entre ellos se incluyen:

Generadores de números aleatorios que utilizan entropía externa

Estos métodos combinan un generador de números pseudoaleatorios (a menudo en forma de cifrado por bloques o de flujo) con una fuente externa de aleatoriedad (por ejemplo, movimientos del ratón, retraso entre pulsaciones del teclado, etc.).

Véase también

Referencias

  1. Algunos de los artículos de von Neumann de 1949 se imprimieron recién en 1951. John von Neumann, “Varias técnicas utilizadas en relación con dígitos aleatorios”, en AS Householder, GE Forsythe y HH Germond, eds., Método de Monte Carlo, Serie de Matemáticas Aplicadas de la Oficina Nacional de Estándares , vol. 12 (Washington, DC: Oficina de Imprenta del Gobierno de EE. UU., 1951): págs. 36–38.
  2. Lehmer, Derrick H. (1951). "Métodos matemáticos en unidades de computación a gran escala". Actas del 2.º Simposio sobre Maquinaria de Cálculo Digital a Gran Escala : 141–146 .
  3. Thomson, WE (1958). "Un método de congruencia modificado para generar números pseudoaleatorios" . The Computer Journal . 1 (2): 83. doi : 10.1093/comjnl/1.2.83 .
  4. Rotenberg, A. (1960). "Un nuevo generador de números pseudoaleatorios" . Journal of the ACM . 7 (1): 75– 77. doi : 10.1145/321008.321019 . S2CID 16770825 . 
  5. DE Knuth, El arte de la programación informática, Vol. 2 Algoritmos seminuméricos, 3.ª ed., Addison Wesley Longman (1998); Véase la pág. 27.
  6. Tausworthe, RC (1965). "Números aleatorios generados por recurrencia lineal módulo dos" (PDF) . Matemáticas de la computación . 19 (90): 201– 209. doi : 10.1090/S0025-5718-1965-0184406-1 .
  7. Wichmann, Brian A.; Hill, David I. (1982). "Algoritmo AS 183: Un generador de números pseudoaleatorios eficiente y portátil". Journal of the Royal Statistical Society. Serie C (Estadística Aplicada) . 31 (2): 188– 190. doi : 10.2307/2347988 . JSTOR 2347988 . 
  8. "Soporte de Microsoft - Descripción de la función ALEATORIO en Excel" . 17 de abril de 2018.
  9. "Documentación » La biblioteca estándar de Python » 9. Módulos numéricos y matemáticos » 9.6. random — Generar números pseudoaleatorios" .   
  10. Wolfram, S. (1983). "Mecánica estadística de autómatas celulares". Rev. Mod. Phys . 55 (3): 601– 644. Bibcode : 1983RvMP...55..601W . doi : 10.1103/RevModPhys.55.601 .
  11. Eichenauer, Jürgen; Lehn, Jürgen (1986). "Un generador de números pseudoaleatorios congruenciales no lineales". Estadísticas estadísticas . 27 : 315– 326. doi : 10.1007/BF02932576 . S2CID 122052399 . 
  12. Blum, L.; Blum, M.; Shub, M. (1 de mayo de 1986). "Un generador de números pseudoaleatorios simple e impredecible" . SIAM Journal on Computing . 15 (2): 364– 383. doi : 10.1137/0215025 . ISSN 0097-5397 . 
  13. Park, Stephen K.; Miller, Keith W. (1988). "Generadores de números aleatorios: los buenos son difíciles de encontrar" (PDF) . Communications of the ACM . 31 (10): 1192– 1201. doi : 10.1145/63039.63042 . S2CID 207575300 . 
  14. "Generación de números pseudoaleatorios" . cppreference.com . Consultado el 14 de noviembre de 2021 .
  15. Wikramaratna, RS (1989). "ACORN: un nuevo método para generar secuencias de números pseudoaleatorios distribuidos uniformemente". Journal of Computational Physics . 83 (1): 16– 31. Bibcode : 1989JCoPh..83...16W . doi : 10.1016/0021-9991(89)90221-0 .
  16. Wikramaratna, RS Resultados de convergencia teóricos y empíricos para generadores de números aleatorios congruenciales aditivos, Journal of Computational and Applied Mathematics (2009), doi : 10.1016/j.cam.2009.10.015
  17. Savvidy, GK; Ter-Arutyunyan-Savvidy, NG (1991). "Sobre la simulación de Monte Carlo de sistemas físicos". Journal of Computational Physics . 97 (2): 566. Bibcode : 1991JCoPh..97..566S . doi : 10.1016/0021-9991(91)90015-D .
  18. 1 2 George, Marsaglia; Zaman, Arif (1991). "Una nueva clase de generadores de números aleatorios" . Annals of Applied Probability . 1 (3): 462– 480. doi : 10.1214/aoap/1177005878 .
  19. Martin, Lüscher (1994). "Un generador portátil de números aleatorios de alta calidad para simulaciones de teoría de campos reticulares". Computer Physics Communications . 79 (1): 100– 110. arXiv : hep-lat/9309020 . Bibcode : 1994CoPhC..79..100L . doi : 10.1016/0010-4655(94)90232-1 . S2CID 17608961 . 
  20. Matthews, Robert AJ (1992). "Recíprocos máximamente periódicos" . Bull. Inst. Math. Appl . 28 : 147–148 .
  21. Marsaglia, George; Zaman, Arif (1993). "El generador KISS". Informe técnico, Departamento de Estadística, Universidad Estatal de Florida, Tallahassee, FL, EE. UU .
  22. Publicación de George Marsaglia en el grupo de noticias sci.stat.math con fecha del 1 de agosto de 2018 con el título ' Otro generador de números aleatorios más '.
  23. Koç, Cemal (1995). "Secuencias recurrentes con acarreo". Journal of Applied Probability . 32 (4): 966– 971. doi : 10.2307/3215210 . JSTOR 3215210 . S2CID 123798320 .  
  24. Couture, Raymond; L'Ecuyer, Pierre (1997). "Propiedades de distribución de generadores de números aleatorios de multiplicación con acarreo" (PDF) . Mathematics of Computation . 66 Número. 218 (218): 591– 607. Bibcode : 1997MaCom..66..591C . doi : 10.1090/S0025-5718-97-00827-2 .
  25. Matsumoto, M.; Nishimura, T. (1998). "MersenneTwister: Un generador de números pseudoaleatorios uniformes equidistribuidos de 623 dimensiones". ACM Transactions on Modeling and Computer Simulation . 8 (1): 3– 30. CiteSeerX 10.1.1.215.1141 . doi : 10.1145/272991.272995 . S2CID 3332028 .  
  26. Marsaglia, George (julio de 2003). "Xorshift RNGs" . Journal of Statistical Software . 8 (14). doi : 10.18637/jss.v008.i14 .
  27. Panneton, François O.; l'Ecuyer, Pierre; Matsumoto, Pierre (marzo de 2006). "Generadores de largo período mejorados basados ​​en recurrencias lineales módulo 2" (PDF) . ACM Transactions on Mathematical Software . 32 (1): 1– 16. CiteSeerX 10.1.1.73.5499 . doi : 10.1145/1132973.1132974 . S2CID 7368302 .  
  28. Jenkins, Bob (2009). "Un pequeño generador de números pseudoaleatorios no criptográfico" .
  29. Doty-Humphrey, Chris. "RNG_engines.txt" . Practically Random . Archivado del original el 17 de diciembre de 2024. Recuperado el 13 de febrero de 2025 .
  30. "SFC64 Small Fast Chaotic PRNG" . Manual de NumPy v2.2 . Archivado del original el 13 de febrero de 2025. Consultado el 13 de febrero de 2025 .
  31. 1 2 3 Salmon, John; Moraes, Mark; Dror, Ron; Shaw, David (2011). "Números aleatorios paralelos: tan fácil como 1, 2, 3". Actas de la Conferencia Internacional de 2011 sobre Computación de Alto Rendimiento, Redes, Almacenamiento y Análisis, Artículo No. 16. doi : 10.1145 /2063384.2063405 .
  32. Balkova, Lubomira; Bucci, Michelangelo; De Luca, Alessandro; Hladky, Jiri; Puzynina, Svetlana (septiembre de 2016). "Generadores de números pseudoaleatorios aperiódicos basados ​​en palabras infinitas". Theoretical Computer Science . 647 : 85–100 . arXiv : 1311.6002 . doi : 10.1016/j.tcs.2016.07.042 . S2CID 2175443 . 
  33. Steele, Guy L. Jr.; Lea, Doug; Flood, Christine H. (2014). "Generadores rápidos de números pseudoaleatorios divisibles" (PDF) . Actas de OOPSLA '14 de la Conferencia Internacional ACM de 2014 sobre Sistemas, Lenguajes y Aplicaciones de Programación Orientada a Objetos .
  34. O'Neill, Melissa E. (2014). "PCG: Una familia de algoritmos simples, rápidos, eficientes en espacio y estadísticamente buenos para la generación de números aleatorios" (PDF) . Informe técnico .
  35. Cookman, Richard (2016). "Generador de bits de ciclo aleatorio (rcb_generator)" . Informe técnico .
  36. Widynski, Bernard (2017). "Middle-Square Weyl Sequence RNG". arXiv : 1704.00358 [ cs.CR ].
  37. Kneusel, Ron (2018). Números aleatorios y computadoras (1.ª ed.). Springer. págs. 13–14 . ISBN   9783319776972.
  38. Çabuk, Umut Can; Aydin, Ömer; Dalkiliç, Gökhan (2017). "Un generador de números aleatorios para protocolos de autenticación ligeros: xorshiftR+" . Revista turca de ingeniería eléctrica y ciencias de la computación . 25 : 4818– 4828. doi : 10.3906/elk-1703-361 .
  39. Blackman, David; Vigna, Sebastiano (2018). "Generadores pseudoaleatorios lineales aleatorizados". arXiv : 1805.01407 [ cs.DS ].
  40. Steele, Guy L. Jr.; Vigna, Sebastiano (2021). "LXM: Mejores generadores de números pseudoaleatorios divisibles (y casi tan rápidos)". Proc. ACM Program. Lang . 5 : 1–31 . doi : 10.1145/3485525 . hdl : 2434/891478 .
  41. Harase, S.; Kimoto, T. (2018). "Implementación de generadores lineales F2 máximamente equidistribuidos de 64 bits con período primo de Mersenne" . ACM Transactions on Mathematical Software . 44 (3): 30:1–30:11. arXiv : 1505.06582 . doi : 10.1145/3159444 . S2CID 14923086 . 
  42. Widynski, Bernard (2020). "Squares: A Fast Counter-Based RNG". arXiv : 2004.06278 [ cs.DS ].
  43. Działa, Tomasz R. (2023). "Generadores Collatz-Weyl: generadores de números pseudoaleatorios parametrizados de alta calidad y alto rendimiento". arXiv : 2312.17043 [ cs.CE ].
  • Serie SP800-90 sobre generación de números aleatorios , NIST
  • Generación de números aleatorios en el Manual de Referencia de la Biblioteca Científica GNU
  • Rutinas de generación de números aleatorios en la biblioteca numérica NAG
  • Descripción general de Chris Lomont sobre los generadores de números pseudoaleatorios (PRNG), incluyendo una buena implementación del algoritmo WELL512.
  • Código fuente para leer datos de un generador de números aleatorios TrueRNG V2 de hardware
Obtenido de " https://en.wikipedia.org/w/index.php?title=List_of_random_number_generators&oldid=1350697029#Pseudorandom_number_generators_(PRNGs) "