Descripción de la función ALEATORIO en Excel 2007 y en Excel 2003

Seleccione idioma Seleccione idioma
Id. de artículo: 828795 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se describe el algoritmo modificado que se utiliza en la función de generador de números aleatorios, ALEATORIO, en Microsoft Office Excel 2007 y en Microsoft Office Excel 2003.

Más información

La función ALEATORIO en las versiones anteriores de Excel utilizaba un algoritmo de generación de números pseudoaleatorios cuyo rendimiento en las pruebas estándar de aleatoriedad no era suficiente. Aunque es probable que esto afecte sólo a aquellos usuarios que tienen que realizar un gran número de llamadas a ALEATORIO, como un millón o más, y pese a no suponer ningún problema para la mayoría de los usuarios, el algoritmo de generación de números pseudoaleatorios que se describe aquí se implementó por primera vez en Excel 2003. Supera la misma batería de pruebas estándar.

La batería de pruebas se denomina Diehard (vea la nota 1). El algoritmo implementado en Excel 2003 fue desarrollado por B.A. Wichman e I.D. Hill (vea las notas 2 y 3). Este generador de números aleatorios también se utilizó en el paquete de software RAT-STATS proporcionado por la Oficina del Inspector General (Office of the Inspector General) del Departamento Norteamericano de Servicios Sanitarios y Humanos (U.S. Department of Health and Human Services). Rotz y otros (vea la nota 4) han demostrado que supera las pruebas de DIEHARD y otras pruebas adicionales desarrolladas por el National Institute of Standards and Technology (NIST, denominado anteriormente National Bureau of Standards).

Notas

  • Las pruebas fueron desarrolladas por el Profesor George Marsaglia del Departamento de estadística de la Universidad del Estado de Florida y están disponibles en el siguiente sitio web:
    http://www.csis.hku.hk/~diehard
  • Wichman, B.A. e I.D. Hill, Algorithm AS 183: An Efficient and Portable Pseudo-Random Number Generator, Applied Statistics, 31, 188-190, 1982.
  • Wichman, B.A. e I.D. Hill, Building a Random-Number Generator, BYTE, pp. 127-128, marzo de 1987.
  • Rotz, W. y E. Falk, D. Wood y J. Mulrow, A Comparison of Random Number Generators Used in Business, presentado en Joint Statistical Meetings, Atlanta, GA, 2001.
La idea básica es que si toma tres números aleatorios [0,1] y los suma, la parte fraccionaria de la suma es en sí misma un número aleatorio en [0,1]. Las instrucciones críticas del listado de código Fortran que aparece en el artículo original de Wichman y Hill son las siguientes:
C	IX, IY, IZ SHOULD BE SET TO INTEGER VALUES BETWEEN 1 AND 30000 BEFORE FIRST ENTRY

IX = MOD(171 * IX, 30269)

IY = MOD(172 * IY, 30307)

IZ = MOD(170 * IZ, 30323)

RANDOM = AMOD(FLOAT(IX) / 30269.0 + FLOAT(IY) / 30307.0 + FLOAT(IZ) / 30323.0, 1.0)
Por tanto, IX, IY, IZ generan enteros entre 0 y 30268, 0 y 30306 y 0 y 30322, respectivamente. Éstos se combinan en la última instrucción para implementar el principio sencillo que se expresó anteriormente: si toma tres números aleatorios [0,1] y los suma, la parte fraccionaria de la suma es en sí misma un número aleatorio en [0,1].

Puesto que ALEATORIO genera números pseudoaleatorios, si se genera una secuencia larga de ellos, la secuencia llegará a repetirse en el futuro. La combinación de números aleatorios según el procedimiento de Wichman-Hill garantiza que se generarán más de 10^13 números antes de que comience la repetición. Algunas de las pruebas de Diehard generaron resultados poco satisfactorios con las versiones anteriores de ALEATORIO porque el ciclo antes de que empezaran a repetirse los números era inaceptablemente corto.

Resultados en versiones anteriores de Excel

La función ALEATORIO de las versiones anteriores de Excel era buena en la práctica para los usuarios que no necesitaban una secuencia larga de números aleatorios (como un millón). No superó varias pruebas estándar de aleatoriedad, por lo que su rendimiento suponía un problema cuando se necesitaba una secuencia larga de números aleatorios.

Resultados en Excel 2003

Se ha implementado un algoritmo sencillo y efectivo. El nuevo generador supera todas las pruebas estándar de aleatoriedad.

Conclusiones

Los usuarios avanzados de ALEATORIO que necesitan secuencias largas de números aleatorios están más contentos con el nuevo generador de Excel 2003. Los demás usuarios pueden utilizar la función ALEATORIO de las versiones anteriores de Excel.

Referencias

Para obtener más información acerca de un problema que se ha documentado que ocurre en ALEATORIO, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
834520 La función ALEATORIO devuelve números negativos en Excel 2003

Propiedades

Id. de artículo: 828795 - Última revisión: jueves, 27 de diciembre de 2007 - Versión: 5.0
La información de este artículo se refiere a:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
Palabras clave: 
kbinfo kbfunctions kbfuncstat KB828795

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com