El 6 de junio de 2011 14:23, Andres Morales <[email protected]> escribió:
> Yo no lo considero así, con srand estás generando la semilla del número > aleatorio, y la misma la estás generando en el momento con un time, por lo > tanto es igual de aleatoria la semilla si se encuentra fuera o dentro de la > función. De todas maneras, yo la pondría fuera de la función, al principio > del main(), solo para ser ordenado y también para poder tener n funciones > que generaran números aleatorios distintas sin tener que utilizar srand en > cada una de ellas. Yo tendría a estar de acuerdo con el profesor. No es necesario inicializar el generador de números al azar más de una vez. Hacerlo en realidad desvirtua el funconamiento del algoritmo. No es que el número que te salga no sea al azar, sino que es mucho más predecible. Tratñandose de algo sencillo como un "dado", puede que no importe pero como en este caso el ejercicio no se trata de hacer un dado en sí sino de aprender a programar, es conveniente que el alumno sepa que si bien en este caso daría más o menos lo mismo, no es conveniente que quede con la idea de que así está bien, porque algún día podría darse el caso en que hacer eso suponga una vulnerabilidad en algún sistema. Si yo se que tu programa inicializa el generador de números al azar con una marca de tiempo siempre antes de obtener el número, puedo hacer un programa que pruebe unos cuantos miles de marcas de tiempo "razonables" y estoy seguro de que alguno de los números que obtenga será el tuyo. Claro que después de ver la manera en que la gente de Sony elige números al azar, este programa es un lujo. http://psx-scene.com/tmp/psx-scene/pictures/EAsaP.png http://www.youtube.com/watch?v=hcbaeKA2moE -- Qapla' Alejandro Vargas
