Visual Basic - uso de Rnd y Randomize

Life is soft - evento anual de software empresarial
 
Vista:

uso de Rnd y Randomize

Publicado por jlcastro (114 intervenciones) el 18/03/2001 12:21:08
Rnd genera numeros aleatorios con Randomize no se producela misma secuencia de numeros

Pero como se hace para que los numeros generados no se vuelban a generar la aplicacion este activa.
Muchas gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:uso de Rnd y Randomize

Publicado por Adán (39 intervenciones) el 18/03/2001 13:50:05
Randomize te da la "semilla", es decir el número que se va a utilizar en una ecuación que genera "números aleatorios", por lo que si quieres que no se repita esa "semilla" debes utilizar Randomize Timer, con esto la semilla será diferente según la hora y mejoras la aleatoriedad.

Ahora que, si lo que quieres es, por ejemplo, que de 10 números (1, 2, 3...., 10) te escoja sólo uno y no lo repita después, puedes hacer lo siguiente:

Dim escoger() As Integer 'matriz donde estarán tus números que no se van a repetir
Dim total as Integer 'numeros que tienes para escoger

Private Sub asignar()
Dim n As integer
Redim escoger(1 To 10)
total = Ubound(Escoger)
For n = 1 To Ubound(escoger)
escoger(n) = n
Next n
End sub

Private Function Numeroalazar()
Dim minum As Integer
Dim devolver as Integer

Randomize Timer
minum = Int(Rnd * total) + 1 'obtenemos numero al azar de 1 a total
devolver = escoger(minum) 'es el número al azar de tu lista de números que se va a devolver
For n = 1 To total - 1
If minum >= n Then 'recorremaos la matriz para eliminar el número que ya escogiste al azar
escoger(n) = escoger(n + 1)
End If
next n
total = total -1 'reducimos el número de opciones
Redim Preserve escoger(total)

Numeroalazar = devolver
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:uso de Rnd y Randomize

Publicado por jlcastro (114 intervenciones) el 20/03/2001 17:46:27
Adan: No entiendo bien el aplicar estas instrucciones, por favor si puedes me envias un ejemplo (un pequeño formulario el cual puede contener un command y una label que cuando se pulse el command aparezca un numero el label y no se repita hasta que se vuelva a iniciar otra vez el programa.
un saludo y muchisimas gracias por tu ayuda.
jose luis
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar