Sobre los números aleatorios en C++
Buenos dÃas. Tengo una duda sobre la generación de números aleatorios en C++
Por lo que yo sé, hay un cierto número de lenguajes de programación (el BASIC es uno de ellos, por ejemplo), en los que al depender la generación de números aleatorios del temporizador interno del ordenador, es necesario poner una orden para inicializar esta relación, antes de disponerse a generar números aleatorios.
Creo que el C++ es uno de los lenguajes en los que esto ocurre. Asà pues, mis preguntas concretas, son las siguientes.
1) ¿Es C++ uno de los lenguajes en los que hay que inicializar la relación con el temporizador antes de generar números aleatorios?
2) Si es asÃ, ¿cuál es la orden para esta inicializacion?
3) Si no se inicializa, ¿ocurre como por ejemplo en GW-Basic, que siempre se obtenÃa la misma cadena de números?
4) Y por último, un detalle importante para mÃ. Si se pide a la función de números aleatorios que genere uno (entre 0 y 1, como hace por defecto) sin que se haya inicializado la relación con el temporizador previamente, ¿cuál es el número que da el C++? Este dato puede parecer irrelevante, pero para el problema que yo tengo, no lo es, asà que si alguien me hiciese el favor de averiguarlo, se lo agradecerÃa.
Gracias, y hasta pronto.
Por lo que yo sé, hay un cierto número de lenguajes de programación (el BASIC es uno de ellos, por ejemplo), en los que al depender la generación de números aleatorios del temporizador interno del ordenador, es necesario poner una orden para inicializar esta relación, antes de disponerse a generar números aleatorios.
Creo que el C++ es uno de los lenguajes en los que esto ocurre. Asà pues, mis preguntas concretas, son las siguientes.
1) ¿Es C++ uno de los lenguajes en los que hay que inicializar la relación con el temporizador antes de generar números aleatorios?
2) Si es asÃ, ¿cuál es la orden para esta inicializacion?
3) Si no se inicializa, ¿ocurre como por ejemplo en GW-Basic, que siempre se obtenÃa la misma cadena de números?
4) Y por último, un detalle importante para mÃ. Si se pide a la función de números aleatorios que genere uno (entre 0 y 1, como hace por defecto) sin que se haya inicializado la relación con el temporizador previamente, ¿cuál es el número que da el C++? Este dato puede parecer irrelevante, pero para el problema que yo tengo, no lo es, asà que si alguien me hiciese el favor de averiguarlo, se lo agradecerÃa.
Gracias, y hasta pronto.
Por lo que sé. En C++ al igual que en basic se requiere de la orden randomize() (debe inlcuirse la librerÃa time.h pq la necesita) si no se inicializa dará el mismo conjunto de resultados en repetidas ejecuciones. Respeto a tu última pregunta, no lo sé. Ya que estamos en el tema, sabes en que librerÃa están definidas las funciones aleatorias en Visual C++ 6.0 (en stdlib.h no las tengo), gracias
