31/05/2011, 20:37
|
| | Fecha de Ingreso: abril-2010 Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses Puntos: 228 | |
Respuesta: Algoritmo de numeros aleatorios sin repetir el que ya ha salido Tendrias que optimizar el chequeo. A la larga se hace muy lento ir comparando cada numero con cada uno que salio.
Una optimizacion posible seria mantener ordenada la lista. Asi comparamos mietras el numero sea menor, si llegamos a uno mayor y no es nuestro numero, listo no salio.
Otra solucion seria posible si los numero aleatorios que generas tiene una cota maxima (no demasiada grande). Entonces te creas un array de esa dimension seteado a cero, cuando sale un numero el indice que corresponda a ese numero lo pasas a uno. Para comprara simplemente haces array[numero] == 0 si es true el numero no salio. Esto hace que las comparaciones sean en tiempo constante.
Por ultimo podrias implementar alguna estructura de datos como como un arbol binario para hacer busqueda binaria. Busca sobre estos temas que estan bastantes copados y ayudan muchos.
Espero que alguna de las tres formas te ayuden. |