Descrição da função RAND no Excel 2007 e no Excel 2003

Traduções deste artigo Traduções deste artigo
ID do artigo: 828795 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo descreve o algoritmo modificado que é usado em uma função geradora de número aleatório RAND no Microsoft Office Excel 2007 e no Microsoft Office Excel 2003.

Mais Informações

A função RAND em versões anteriores do Excel usava um algorítmo de geração de número pseudo-aleatório cujo desempenho em testes padrão de aleatoriedade não eram suficientes. Embora isto provavelmente afetasse apenas os usuários que tinham de fazer um grande número de chamadas para RAND, como um milhão ou mais, e era uma preocupação de quase todos os usuários, o algoritmo de geração de número pseudo-aleatório descrito aqui foi implementado primeiramente para o Excel 2003. Ele passa pela mesma bateria padrão de testes.

A bateria de testes é chamada Diehard (veja a nota 1). O algoritmo que está implementado no Excel 2003, foi desenvolvido pela B.A Wichman e I.D Hill (veja as notas 2 e 3). Esse gerador de números aleatórios também é utilizado no pacote de softwares RAT-STATS fornecido pelo Gabinete do Inspetor Geral do Departamento de Saúde e Serviços Humanos dos Estados Unidos. Foi demonstrado por Rotz et Al (veja a nota 4) para passar os testes DIEHARD e testes adicionais desenvolvidos pelo Instituto Nacional de Padrões e Tecnologia (NIST, anteriormente conhecido como National Bureau of Standard).

Observações

  • Os testes foram desenvolvidos pelo Professor George Marsaglia, Departamento de Estatística, Universidade Estadual da Flórida e estão disponíveis no seguinte site (em inglês):
    http://www.csis.hku.hk/~diehard
  • Wichman, B.A. e I.D. Hill, Algoritmo AS 183: An Efficient and Portable Pseudo-Random Number Generator, Estatísticas aplicadas, 31, 188-190, 1982.
  • Wichman, B.A. e I.D. Hill, Building a Random-Number Generator, BYTE, pp. 127-128, Março 1987.
  • Rotz, W. e E. Falk, D. Wood, e J. Mulrow, A Comparison of Random Number Generators Used in Business, apresentado no Joint Statistical Meetings, Atlanta, GA, 2001.
A idéia básica é que, se você tomar três números aleatórios em [0,1] e somá-los, a parte fracionária da soma é propriamente um número aleatório em [0,1]. As declarações críticas no código Fortran listadas do artigo original de Wichman e Hill são:
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)
Portanto IX, IY, IZ geram inteiros entre 0 e 30268, 0 e 30306 e, 0 e 30322, respectivamente. Esses são combinados na última declaração para implementar o princípio simples que foi expresso anteriormente: Se você tomar três números aleatórios em [0,1] e somá-los, a parte fracionária da soma propriamente um número aleatório em [0,1].

Devido a RAND produzir números pseudo-aleatórios, se uma longa seqüência deles for produzida eventualmente, a seqüência vai repetir propriamente. Combinando números aleatórios como no procedimento de Wichman-Hill garante que mais de 10^13 números serão gerados antes do início da repetição. Vários dos testes Diehard produzidos resultaram de maneira insatisfatória com as versões anteriores da RAND porque o ciclo anterior de números iniciados na repetição foi inaceitavelmente curto.

Resultado nas versões do Excel

A função RAND em versões anteriores do Excel foi refinada na prática para os usuários que não requerem uma longa seqüência de números aleatórios (como um milhão). Ele falhou em vários testes padrão de aleatoriedade, tornando o seu desempenho um problema quando uma longa seqüência de números aleatórios era necessária.

Resultado no Excel 2003

Um simples e eficaz algoritmo foi implementado. O novo gerador passa em todos os testes padrão de aleatoriedade.

Conclusões

Usuários avançados da RAND que exigem longas seqüências de números aleatórios são melhores do que com o novo gerador do Excel 2003. Outros usuários não devem se intimidar em utilizar RAND em versões anteriores do Excel.

Referências

Para obter mais informações sobre os problemas que foram documentados e que ocorrem com RAND, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft:
834520 A função RAND retorna números negativos no Excel 2003

Propriedades

ID do artigo: 828795 - Última revisão: sexta-feira, 28 de dezembro de 2007 - Revisão: 5.0
A informação contida neste artigo aplica-se a:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
Palavras-chave: 
kbinfo kbfunctions kbfuncstat 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