[ Foro de C++ ]

Pregunta sobre el algoritmo que usa la función rand en C++ para generar los nùmeros aleatorios

22-Oct-2021 21:16
Invitado (Algoritmo que usa la funci?n rand() C++)
1 Respuestas

Estimados buenas tardes
Llevo un tiempo buscando información sobre algoritmo por detras de la función rand() en C++, ¿cual es el algotimo que usa esa función para generar los numeros aleatorios?
Lo que pude encontrar es que la función utiliza una semilla cuja variable es iniciada con la hora inicial de la simulación, pero nada más que eso. Sé que existen algoritmos, como el método de residuos ponderados para general variables aleatorias, iniciado también con una semila ingresada por el usuario. Si tuvieran alguna insformación relacionada con mi pregunta se lo agradeceria mucho.


23-Oct-2021 23:56
Nacho Cabanes (+83)

Cualquier buscador de Internet te puede dar la respuesta, porque en repositorios como GitHub hay fuentes de compiladores de C. Nada te garantiza que se use el mismo algoritmo en todos ellos, pero por ejemplo, una búsqueda rápida me ha llevado a:

https://elixir.bootlin.com/glibc/glibc-2.27/source/stdlib/rand.c

que delega en random:

https://code.woboq.org/userspace/glibc/stdlib/random.c.html

Aun así, insisto, yo miraría un compilador entero, como LCC o Tiny C:

https://github.com/drh/lcc

https://bellard.org/tcc/






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)