PROBLEMAS COM RANDOM
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 ^^
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 ^^
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
Abaixo segue um exemplo que tem aqui no fórum, do amigo Zerocal.
http://vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=8907
Ahh ñ deu
Qual foi o problema?
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
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