C/Visual C - numeros random

 
Vista:

numeros random

Publicado por marisab (2 intervenciones) el 15/07/2003 17:58:18
Hola:

Debo leer de manera aleatoria 76800 datos, ¿como puedo manipular la funcion RAND para lograr esto?, Esto debe correr para el estandar ANSI.

Gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:numeros random

Publicado por Sebastian (8 intervenciones) el 16/07/2003 19:55:22
la funcióon rand( ), devuelve un número aleatorio. Si la usas repetidas veces te darás cuenta que los números no son muy aleatorios. Para ello debes usar la función srand( ), la cual de acuerdo a la hora del equipo varía la generación de números por parte de rand( ). Si necesitas leer 76800 datos, entonces debes hacer rand( ) % 76800, así la función generará números aleatorios entre 0 y 76799, y nunca se saldrá de ese rango. Pero si es posible que se repita un valor aleatorio, entonces debieras llevar un registro de los valores que ya has solicitado, pienso que te pude servir algo como esto:

int quedanSinMarcar( int registro[ ], int MAX)
{
for ( int i = 0; i < MAX; i++)
if ( ! registro[ i ] ) // Si el valor esta en cero (sin marcar)
return 1;

return 0;
}

main( )
{
int registro[76800] = {0} // todos en cero (ninguno ha sido marcado)
int valor = 0;

srand( time (NULL) ); // Esta función genera número aleatorio c/vez
while ( ! quedanSinMarcar ( registro, 76800 ) ) { // hasta marcar todos
do {
valor = rand ( ) % 76800;
} while ( ! registro [ valor] ); // buscas el proximo a marcar

// aqui lees el dato que necesitas
// agregando tu codigo fuente
registro [ valor ] = 1; // Marcas, para saber que ya lo leiste
} // fin ciclo while
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar