Numeros aleatorios no repetidos

Iniciado por sexto, 1 Noviembre 2009, 16:09 PM

0 Miembros y 1 Visitante están viendo este tema.

sexto

Hola, veréis, tengo un problema que me está amargando la existencia.

Lo que quiero es lo siguiente:
meter en un array los números del 0 al 3 pero de forma aleatoria.
He probado varias formas, como ir metiéndolas a una y filtrarlas para que no se repitan, pero no hay huevos, además de que sería bastante poco eficiente.
La otra forma que he intentado hacer, que será con la que seguramente me quede, aunque no me sale, es crear un array con los números ordenados, y después coger posiciones aleatorias de ese array y meter el valor en otra (aunque obviamente, si que se repitan tampoco).

Bueno, realmente me da igual la forma, lo que quiero es que me salga.

El lenguaje que estoy usando en Visual C#, pero si alguien sabe hacerlo en otro lenguaje que me lo ponga y luego ya lo porto a Visual C# yo.

Muchas gracias.

MANULOMM

#1
bueno, se repiten por que el rango es demasiado pequeño, que semilla estas utilizando, por que no intentan ampliarel rango por ejemplo de 0 a 1000.
por ejemplo de 0 a 400 que represente el 0, del 401 al 750 represente el 1 y asi sucesivamente, esto podria hacer menos aleatoria la muestra.

Atentamente,

Juan Manuel Lombana
Medellín - Colombia


sexto

porque yo necesito esos 4 números exclusivamente, los números del 0 al 3 desordenados.

Hadess_inf


MANULOMM

por eso mismo, utiliza un rango mas amplio y subclasifica.... aunque con recursividad tambien podrias como dice hadess, seria una solución bastante elegante.

Atentamente,

Juan Manuel Lombana
Medellín - Colombia