Pregunta

Estoy tratando de predecir la salida de un programa que utiliza la función de msvcrt rand () para generar la cara de tres dados. Creo que el código es algo como: dice[0] = rand() % 6 + 1; dice[1] = rand() % 6 + 1; dice[2] = rand() % 6 + 1;, y me preguntaba si podría utilizar un programa de predicción para los generadores de congruencia lineal para predecir la siguiente números en la secuencia.

¿Fue útil?

Solución

Vea por sí mismo: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\rand.c

(O uso %VCINSTALLDIR%\crt\src\rand.c si se está ejecutando desde un símbolo del sistema VC).

(Asumiendo que tiene al menos la versión estándar de VC. Se trata de dos líneas. Que había puesto, pero no está seguro de si la licencia lo permite.)

Otros consejos

Si falla la memoria, sí, es un generador de congruencia lineal - pero lo que devuelve es el resto de una producción mayor, lo que aumenta la dificultad de predecir el siguiente número (hasta el punto de que es probable que tenga una muestra mucho mayor de tres salidas que lo hagan de forma fiable).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top