Excel VBA: o método Rnd () não é aleatório o suficiente

0

Estou usando o Excel e o VBA para simular um grande número de jogadas de dados.

O problema que estou tendo é depois de um certo período de tempo, os testes começam a se repetir e eu começo a obter resultados que são tudo menos aleatórios.

Estou usando INT = RND() * 6 +.5 para cada um dos dados.
Existe alguma maneira de torná-lo um par de ordens de magnitude mais aleatória?
Eu uso Randomize antes da mão para evitar iniciar sempre da mesma maneira.

    
por tkulogo 14.11.2013 / 21:37

1 resposta

1

O VBA provavelmente implementa uma função pseudo-aleatória. Como é uma função, ela repete, mas gera um conjunto de valores que tem uma distribuição aleatória.

Você pode precisar desenvolver ou procurar uma biblioteca que receba uma fonte de aleatoriedade e gere uma sequência de números aleatórios com base nisso. Uma dessas fontes de imprevisibilidade é o tempo entre pressionamentos de teclas ou a coleta de dados, como movimentos do mouse.

Você também pode usar um serviço da Web e fazer o download de um grande número de números aleatórios. random.irb.hr e random.org são dois desses serviços.

random.irb.hr tem algumas bibliotecas em seu site que permitem que você acesse programaticamente o serviço depois de criar uma conta.

Você também pode procurar comprar o gerador que eles usam e usar o software que eles fornecem com ele.

    
por 14.11.2013 / 22:44