Numeros Aleatorios dentro de un archivo de texto
Me encuentro realizando una funcion donde debo ingresar numeros aleatorios de maximo 6 digitos dentro un archivo de texto, los numeros no deben repetirse, llegando a almacenar alrededor de 5000 numeros.
Si existe alguna persona que me ayude con alguna de las funciones que pueda implementar se lo agradezco.
Si existe alguna persona que me ayude con alguna de las funciones que pueda implementar se lo agradezco.
Remito un programa que me parece que soluciona tu problema.
Deberas agregar todo lo relacionado con el archivo de texto.
Exito ! ! !
// program alea.cpp
// written in borland c++ - ver 4.5
#include <iomanip.h>
#include <stdlib.h>
const int N = 1250; // tenemos que dividir el proceso en 4 etapas por que no
// hay suficiente memoria para un array de 5000 miembros
void Process(int k)
{
int a[N],start = k*N;
for(int i = 0;i < N;a[i++] = start++); // array que evita repeticiones
for(i = 0;i < N;i++)
{
int index = random(N-i);
cout << setw(10) << long(a[index])*long(200-1);
for(int k = index;k < N-1;k++) // adecuar el array para evitar
a[k] = a[k+1]; // repeticiones
}
} // PROCESS
void main()
{
randomize();
for(int k = 0;k < 4;k++)
Process(k);
cout << endl << "end of program - good bye ! ! !" << endl;
} // MAIN
Deberas agregar todo lo relacionado con el archivo de texto.
Exito ! ! !
// program alea.cpp
// written in borland c++ - ver 4.5
#include <iomanip.h>
#include <stdlib.h>
const int N = 1250; // tenemos que dividir el proceso en 4 etapas por que no
// hay suficiente memoria para un array de 5000 miembros
void Process(int k)
{
int a[N],start = k*N;
for(int i = 0;i < N;a[i++] = start++); // array que evita repeticiones
for(i = 0;i < N;i++)
{
int index = random(N-i);
cout << setw(10) << long(a[index])*long(200-1);
for(int k = index;k < N-1;k++) // adecuar el array para evitar
a[k] = a[k+1]; // repeticiones
}
} // PROCESS
void main()
{
randomize();
for(int k = 0;k < 4;k++)
Process(k);
cout << endl << "end of program - good bye ! ! !" << endl;
} // MAIN
Puedes usar la funcion rand() para generar numeros aleatorios ,en teoria no se repiten nunca .Lo unico que debes cambiar es para que te los genere entre 0 y 999999 que es tu caso . rand() los genera entre 0 y RAND_MAX que suele ser 32767 para generarlos entre tus limite haces:
rand()*999999/(RAND_MAX+1)
rand()*999999/(RAND_MAX+1)
