GERAR NUMERO ALEATORIO

DANLEONHART 23/10/2012 08:05:28
#412580
Pessoal...

Sei gerar um número aleatório no espaço de 1 até [Ô]x[Ô] (Tipo: 1 até 10):

Randomize
retNum = Int((10 * Rnd)) + 1


O que tá pegando é que preciso gerar um número aleatório entre 85 e 199...não pode ser maior que 199 nem menor que 85...
Tentei fazer assim e não deu certo:

Randomize
retNum = Int((199 * Rnd)) + 85


Sei que é fácil, mas para mim tá foda !
MARCELO.TREZE 23/10/2012 08:44:59
#412584
Resposta escolhida
é simples o seu problema, vamos analisar

Int((10 * Rnd)) + 1 [ô] vai dar certo porque? porque (10 * Rnd) vai gerar um numero de 0 a 9 que somado a 1 vira de 1 a 10

vendo deste ponto chegamos a esta conclusão se você fizer (199 * Rnd) terá um numero entre 0 e 198 que somado a 85 poderá ser 85 a 283, o que gera seu erro, então o que devemos fazer para manter o interva-lo é simples veja

basta você primeiro retirar 85 de 199 e fazer o Rnd por este numero Int((199 - 85) * Rnd) + 85, em código seria assim

Dim retNum As Integer
Dim Inicial As Integer
Dim final As Integer
Inicial = 85
final = 199
Randomize
retNum= Int(((final - Inicial) * Rnd)) + Inicial

Tópico encerrado , respostas não são mais permitidas