PROBLEMAS COM RANDOM

CAMILACANOVA 30/10/2011 23:04:43
#388148
Olá, estou com um problema em sortear números sem repetir, por não ter muita aptidão para vb, tentei utilizar a mesma lógica que usei para JAVA, que por sinal funciona perfeitamente. Para essa tentativa, utilizei números de 1 a 6 e testando utilizei 6 números, ao sortear 6 números de 1 a 6 o resultado seria (1,2,3,4,5,6), mas, não é o que acontece e os números se repetem. A seguir o código de minha tentativa frustrada:


For i = 0 To 6
o = aleatorio.Next(1, 7)
salvar = True
For y = 0 To -1
If n(y) = o Then
salvar = False
i = i - 1
End If

Next
If salvar = True Then
n(i) = o
End If
Next




[ô] ordem crescente
For i = 0 To 6
b = n(i)
j = i - 1
While (j >= 0)
If (n(j) > b) Then
n(j + 1) = n(j)
n(j) = b
End If
j = j - 1
End While
Next

For i = 1 To 6
ListBox1.Items.Add(n(i))
Next

Poderiam me dizer em que estou errando? Obrigada ^^
ALTAIR148 31/10/2011 07:35:02
#388151
Bom dia,

Abaixo segue um exemplo que tem aqui no fórum, do amigo Zerocal.

http://vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=8907
CAMILACANOVA 01/11/2011 22:15:44
#388313
Ahh ñ deu
ALTAIR148 01/11/2011 22:44:22
#388314
Qual foi o problema?
SPRITU 08/11/2011 11:50:41
#388702
Tente o seguinte

esta função ela gera numeros aleatorios e evita que o numero se repita em sequencia ou seja

nunca vai acontecer de gerar
5 4 4 3 2 1

a função impedira de se repetir na sequencia devido a variavel static



Public Function GerarRandom(ByVal min As Short, ByVal max As Short) As Short

Dim n As New Random
Dim k As Integer = n.Next(min, max)
Static ls As Integer

Do While k = ls
k = n.Next(min, max)
Loop

ls = k

Return k

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