ramon Postado Janeiro 8, 2005 Denunciar Share Postado Janeiro 8, 2005 Eu quero gerar numeros aleatorios entre 7 e 11Bom coloquei gerado = Int((11 * Rnd) + 7) E algumas vezes ele gera numeros acima de 11Tipo ele gera 12, 14 etc.O que esta errado? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Janeiro 8, 2005 Denunciar Share Postado Janeiro 8, 2005 Sim. Veja que você manda ele gerar números de 0 a 10 e depois soma 7 aos mesmos. Quando sair um 10 e você soma 7 você obterá 17. Quando sair um 7 e você somar o outro 7 você terá 14. E assim por diante.Só há como especificar o máximo ao utilizar Rnd(), por isso o ideal seria fazer: a = 0 While a < 7 a = Int(Rnd() * 12) Wend Debug.Print aEnquanto o número for menor que 7 ele gerar outros. E, como coloquei *12 é garantido que o número não passará de 11.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon Postado Janeiro 8, 2005 Autor Denunciar Share Postado Janeiro 8, 2005 Bom eu vi um exemplo no help do VB 5 que fala assim: Este exemplo utiliza a função Rnd para gerar um valor inteiro aleatório de 1 a 6. Dim MeuValor MeuValor = Int((6 * Rnd) + 1) ' Gera um valor aleatório entre 1 e 6. Bom então esta errado la no help traduzido.Da uma olhada E no seu exemplo só ta gerando o numero 8 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Janeiro 9, 2005 Denunciar Share Postado Janeiro 9, 2005 Bom eu vi um exemplo no help do VB 5 que fala assim: Este exemplo utiliza a função Rnd para gerar um valor inteiro aleatório de 1 a 6. Dim MeuValor MeuValor = Int((6 * Rnd) + 1) ' Gera um valor aleatório entre 1 e 6. Bom então esta errado la no help traduzido.Da uma olhada E no seu exemplo só ta gerando o numero 8 Não, não há nada de errado com o exemplo. Rnd() * 6 gerará sempre de 0 até 5 e se você somar +1 sempre, terá:0+1 = 11+1 = 22+1 = 33+1 = 44+1 = 55+1 = 6Ou seja, só terá de 1 até 6, de fato. O problema é que você quer começar de um número maior do que 1. Note que se você quiser de 2 até 6, por exemplo, a regra acima não vale. E o mesmo se dará com qualquer número maior que 1. Acho que você ainda não pegou o espírito da coisa.Quanto ao meu exemplo, ele não gera só o número 8. O que pode estar ocorrendo é estar gerando os mesmos números a cada vez que você executa, o que pode ser sanado com o uso de Randomize (antes do uso de Rnd()).Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Janeiro 9, 2005 Denunciar Share Postado Janeiro 9, 2005 Agora entendi Realmente ta certo! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ramon
Eu quero gerar numeros aleatorios entre 7 e 11
Bom coloquei
E algumas vezes ele gera numeros acima de 11
Tipo ele gera 12, 14 etc.
O que esta errado?
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.