ALEATORIOS NO REPETIDOS

Juan Pablo
29 de Mayo del 2006
Hola a todos.
Me encuentro haciendo un generador de horarios aleatorios con Macros y Vbasic. Necesito ayuda en la generación de números aleatorios que se encuentren dentro de un rango pero no se repitan. Es decir, si el rango es de 1 a 2 y selecciona 2, el segundo número que seleccione no sea otra vez 2.
Mil gracias a quien me pueda ayudar

mvallejos
29 de Mayo del 2006
Usa como apoyo la función Randomize

Para el ejemplo supongamos que deseamos generar números aleatorios entre 1 y 1000

Randomize Timer
For i = 1 to 100
Valor = 1 + Rnd * 999
Next i

Ahora, si la cantidad de numeros a generar es cercano al rango numérico, es probable que se te de alguna repeticion, en este caso, vas a tener que ir almacenando los valores aleatorios en un vector y, con cada numero generado, verificar que no exista en la lista antes de agregarlo.

Saludos

Edgarin
29 de Mayo del 2006
Para llenar n aleatorios en un vector
Dim aleatorios(1 to n) as Integer
for i=1 to n
do
valor=1+Int(Rnd*999)
for j=1 to n
yaHay=false
if valor=aleatorios(j) then
yaHay=true
j=n
endif
next
loop while(yaHay)
aleatorios(i)=valor;
next

sergio
29 de Mayo del 2006
gracias putooo