SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: zure en Martes 11 de Junio de 2002, 23:18

Título: Re: Vector con N° aleatorio sin repetirse
Publicado por: zure en Martes 11 de Junio de 2002, 23:18
Hola! Como hago para crear un vector con numeros aleatorios (con random) si que se repitan estos numeros. Tengo esto, porfa diganme donde esta el error:

for (i=0; i<=20; i++)
{
t=1+ random(75);
for (j=0; j<=i; j++)
{
if (t==vector[j])
  {
     i--;
else
   vector[j]=t;
}
}
Título: Re: Vector con N° aleatorio sin repetirse
Publicado por: Ismael en Miércoles 12 de Junio de 2002, 22:44
La verdad que el fragmento de código que envías no indica mucho, sin saber qué es vector[]...
Si quieres que no repita números, recorre el vector y si hay alguno repetido, genera uno nuevo.
Un código que  puede serte útil lo tienes en la sección de "Arrays" de

www.geocities.com/ismaelcamarero (http://www.geocities.com/ismaelcamarero)

el programa se llama "primitiva.zip" y simula la generacion de los números para un tipo de lotería (sin valores repetidos)
Espero que te sirva
Ismael:)
Título: Vector con N° aleatorio sin repetirse
Publicado por: LamKros en Lunes 1 de Julio de 2002, 13:29
/*
Aqui tienes un mini-programa como una solucion
Espero que te sirva
*/

#include <iostream.h>
#include <stdlib.h>
#include <time.h>

/*Realizado por Lamkros*/

int main()
{int i,j,t;
bool ok=true;
int vector[21];
i=0;
srand(time(0));  //inicializa el rand

while (i<=20)
{ok=true;
t=(rand()%75)+1; //Calculo en num aleatorio
j=0;
while ((ok)&&(j<i)) //Compruebo que no esta ya
{
if (vector[j]==t)
{ok = false;}
else
{++j;}
}
if (ok)  // Si no está incremento i y le doy al vector su valor t
{vector=t;
++i;}

}

//Imprime todos los valores
for (i=0;i<=20;++i)
{cout <<endl<<vector<<", ";}
 
system("PAUSE");
return 0;
}

//Suerte;)