Descrição da função ALEATÓRIO no Excel 2007 e no Excel 2003

Traduções de Artigos Traduções de Artigos
Artigo: 828795 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo descreve o algoritmo modificado que é utilizado na função de geração de números aleatórios, ALEATÓRIO, no Microsoft Office Excel 2007 e no Microsoft Office Excel 2003.

Mais Informação

Em versões anteriores do Excel, a função ALEATÓRIO utilizava um algoritmo de geração de números pseudo-aleatórios, cujo desempenho em testes padrão de aleatoriedade não foi suficiente. Apesar desta situação só afectar provavelmente os utilizadores que efectuam um grande número de chamadas a ALEATÓRIO (tal como um milhão ou mais) e não ser motivo de preocupação para a maior parte dos utilizadores, o algoritmo de geração de números pseudo-aleatórios aqui descrito foi implementado pela primeira vez para o Excel 2003. Este algoritmo passa a mesma bateria de testes padrão.

A bateria de testes é chamada Diehard (consulte a nota 1). O algoritmo implementado no Excel 2003 foi desenvolvimento por B.A. Wichman e I.D. Hill (consulte as notas 2 e 3). Este gerador de números aleatórios também é utilizado no pacote de software RAT-STATS fornecido pelo Office of the Inspector General, U.S. Department of Health and Human Services. Rotz et al (consulte a nota 4) provaram que este algoritmo passa os testes DIEHARD, bem como testes adicionais desenvolvidos pelo NIST (National Institute of Standards and Technology, anteriormente conhecido por National Bureau of Standards).

Notas

  • Os testes foram desenvolvidos pelo Professor George Marsaglia, do Departamento de Estatística da Florida State University e estão disponíveis no seguinte Web site:
    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, Março de 1987.
  • Rotz, W. e E. Falk, D. Wood e J. Mulrow, A Comparison of Random Number Generators Used in Business, apresentada na Joint Statistical Meetings, Atlanta (Geórgia), 2001.
A ideia básica é que, se escolhermos três números aleatórios em [0,1] e os somarmos, a parte fraccional da soma é, ela própria, um número aleatório em [0,1]. As instruções críticas da listagem de código Fortran existente no artigo original de Wichman e Hill são as seguintes:
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)
Consequentemente, IX, IY, IZ geram números inteiros entre 0 e 30268, 0 e 30306 e 0 e 30322, respectivamente. Estes números são combinados na última instrução para implementar o princípio simples expresso anteriormente: se escolhermos três números aleatórios em [0,1] e os somarmos, a parte fraccional da soma é, ela própria, um número aleatório em [0,1].

Visto que ALEATÓRIO produz números pseudo-aleatórios, se for produzida uma sequência longa esta irá eventualmente repetir-se a si própria. A combinação de números aleatórios de acordo com o procedimento de Wichman-Hill garante que serão gerados mais de 10^13 números antes que a repetição tenha início. Vários testes Diehard produziram resultados insatisfatórios com as versões anteriores de ALEATÓRIO porque o ciclo antes que a repetição de números tivesse início era inaceitavelmente curto.

Resultados em Versões Anteriores do Excel

Na prática, a função ALEATÓRIO utilizada em versões anteriores do Excel era adequada para utilizadores que não necessitassem de uma sequência longa de números aleatórios (tal como um milhão). No entanto, esta função falhou em vários testes de aleatoriedade, tornando o seu desempenho um problema quando era necessária uma sequência extensa de números aleatórios.

Resultados no Excel 2003

Foi implementado um algoritmo simples e eficaz. O novo gerador passa todos os testes padrão de aleatoriedade.

Conclusões

Os utilizadores avançados de ALEATÓRIO que necessitem de sequências extensas de números aleatórios, irão beneficiar do novo gerador do Excel 2003. Os outros utilizadores poderão continuar a utilizar a função ALEATÓRIO das versões anteriores do Excel sem quaisquer problemas.

Referências

Para obter mais informações sobre um problema cuja ocorrência foi documentada em ALEATÓRIO, clique no número de artigo seguinte para visualizar o artigo na Base de Dados de Conhecimento Microsoft:
834520 A função ALEATÓRIO devolve números negativos no Excel 2003

Propriedades

Artigo: 828795 - Última revisão: 25 de março de 2008 - Revisão: 5.0
A informação contida neste artigo aplica-se a:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
Palavras-chave: 
kbfuncstat kbfunctions kbinfo KB828795

Submeter comentários

 

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