Search code examples
c++randommsvcrtdice

Does msvcrt.dll use a linear congruential generator for its rand() function?


I am trying to predict the output of a program that uses msvcrt's rand() function for generating the face of three dice. I believe the code is something like: dice[0] = rand() % 6 + 1; dice[1] = rand() % 6 + 1; dice[2] = rand() % 6 + 1;, and I was wondering if I could use a prediction program for linear congruential generators to predict the next numbers in the sequence.


Solution

  • See for yourself: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\rand.c

    (Or use %VCINSTALLDIR%\crt\src\rand.c if you're running from a VC command prompt.)

    (Assuming you have at least the standard version of VC. It's two lines. I'd post it, but not sure whether the license allows it.)