Publicado por Gastón Furini el 20.09.2007 15:03:59 en C++ - Nivel Básico
Este artículo nos muestra como obtener un array de N elementos con números aleatorios no repetidos. Para ello se crea un función que retorna un puntero a dicho array y se describe su forma de uso mediante el desarrollo de un programa de ejemplo.
Página 01 de 01 | Versión completa
#include <iostream>
#include <vector>
using namespace std;
int* generarVectorAleatorio(int n);
int main(int argc, char *argv[]){
cout << "Procesando..." << endl;
int n = 100000;
clock_t t0;
double t;
t0 = clock();
int* v = generarVectorAleatorio(n);
t = double(clock() - t0)/(double)CLK_TCK;
//Opcional: mostrar listado de numeros unicos
/*
for(int i = 0; i < n; i++)
cout << v[i] << endl;
*/
delete v;
cout << endl << "Cantidad de numeros unicos: " << n << endl;
cout << "Tiempo de procesamiento: " << t << " seg"<< endl;
return 0;
}
int* generarVectorAleatorio(int n){
srand((unsigned)time(0));
int i, j, *v = new int[n];
vector<int> vec(n);
for(i = 0; i < n; i++) vec[i] = i;
for(i = 0; i < n; i++){
j = static_cast<int> ((double)rand()*(double)(vec.size()) / ((double)RAND_MAX+1.0));
v[i] = vec[j];
vec.erase(vec.begin()+j);
}
return v;
}Página 01 de 01 | Versión completa
No existen descargas asociadas
Artículo leido 5605 veces con un puntaje de 8.00 pts
Sus comentarios son importantes.
No hay comentarios para listar, si desea puede crear el primer comentario para este artículo.
Debe estar identificado para agregar un comentario
Histórico
Ahora mismo