Foros del Web » Programación para mayores de 30 ;) » .NET »

numeros aleatorios sin repetir en c#

Estas en el tema de numeros aleatorios sin repetir en c# en el foro de .NET en Foros del Web. hola amigos del foro, resulta que estoy haciendo un bingo en c#, y para ello necesito generar numeros aleatorios sin repetir pero he intentado evitar ...
  #1 (permalink)  
Antiguo 11/04/2012, 16:55
 
Fecha de Ingreso: noviembre-2011
Ubicación: Cartago
Mensajes: 39
Antigüedad: 12 años, 5 meses
Puntos: 0
numeros aleatorios sin repetir en c#

hola amigos del foro, resulta que estoy haciendo un bingo en c#, y para ello necesito generar numeros aleatorios sin repetir pero he intentado evitar eso, pero siempre vuelve a tomar los datos repetidos

Cita:
int[] vector = new int[25];
Random r = new Random();
int k,j,i = new int();

//generar numeros aleatorios
for (i = 0; i < 25; i++)
{

k = r.Next(1, 75);
vector[i] = k;

}
//
//numeros sin repetir
for (i = 0; i < 25; i++)
{
for (j = i+1; j < 25; j++)
{
if (vector[i] == vector[j])
{
k = r.Next(1, 75);
vector[i] = k;
}

}


}
  #2 (permalink)  
Antiguo 11/04/2012, 21:34
Avatar de ramirezmario7  
Fecha de Ingreso: febrero-2008
Ubicación: Medellín
Mensajes: 336
Antigüedad: 16 años, 2 meses
Puntos: 56
Respuesta: numeros aleatorios sin repetir en c#

Hola.
Prueba este codigo que hice, lo hice a la carrera asi que demas que hay una mejor forma de hacer esto.

Código:
     private int[] CalcularNumeros()
        {
            int[] numeros = new int[25];
            Random r = new Random();

            int auxiliar = 0;
            int contador = 0;

            for (int i = 0; i < 25; i++)
            {
                auxiliar = r.Next(1, 75);
                bool continuar = false;

                while (!continuar)
                {
                    for (int j = 0; j <= contador; j++)
                    {
                        if (auxiliar == numeros[j])
                        {
                            continuar = true;
                            j = contador;
                        }
                    }

                    if (continuar)
                    {
                        auxiliar = r.Next(1, 75);
                        continuar = false;
                    }
                    else
                    {
                        continuar = true;
                        numeros[contador] = auxiliar;
                        contador++;
                    }                    
                }
            }

            return numeros;
        }
__________________
Mario Ramírez
Desarrollador .NET MCTS
https://www.mcpvirtualbusinesscard.c...nteractivecard
  #3 (permalink)  
Antiguo 12/04/2012, 10:14
 
Fecha de Ingreso: noviembre-2011
Ubicación: Cartago
Mensajes: 39
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: numeros aleatorios sin repetir en c#

genial, esta perfecto muchas gracias

Etiquetas: numeros_repetidos, random, vectores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:46.