Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: sexto en 1 Noviembre 2009, 16:09 pm



Título: Numeros aleatorios no repetidos
Publicado por: sexto en 1 Noviembre 2009, 16:09 pm
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.


Título: Re: Numeros aleatorios no repetidos
Publicado por: MANULOMM en 3 Noviembre 2009, 13:20 pm
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


Título: Re: Numeros aleatorios no repetidos
Publicado por: sexto en 3 Noviembre 2009, 16:04 pm
porque yo necesito esos 4 números exclusivamente, los números del 0 al 3 desordenados.


Título: Re: Numeros aleatorios no repetidos
Publicado por: Hadess_inf en 3 Noviembre 2009, 16:21 pm
Usa recursividad.


Título: Re: Numeros aleatorios no repetidos
Publicado por: MANULOMM en 3 Noviembre 2009, 20:15 pm
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