Est-ce que MSVCRT.dll utiliser un générateur de congruence linéaire, pour sa fonction rand ()?

StackOverflow https://stackoverflow.com/questions/1931656

  •  20-09-2019
  •  | 
  •  

Question

Je suis en train de prévoir la sortie d'un programme qui utilise la fonction rand msvcrt () pour générer le visage de trois dés. Je crois que le code est quelque chose comme: dice[0] = rand() % 6 + 1; dice[1] = rand() % 6 + 1; dice[2] = rand() % 6 + 1;, et je me demandais si je pouvais utiliser un programme de prédiction pour les générateurs de congruence linéaires pour prédire les prochains numéros dans la séquence.

Était-ce utile?

La solution

Voyez vous-même: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\rand.c

(ou utilisez %VCINSTALLDIR%\crt\src\rand.c si vous exécutez à partir d'une invite de commande VC).

(En supposant que vous avez au moins la version standard de VC. Il est deux lignes. Je posterai, mais pas sûr que la licence permet.)

Autres conseils

Si ma mémoire est bonne, oui il est un générateur de congruence linéaire - mais ce qu'il retourne est le reste d'une production plus importante, ce qui augmente la difficulté de prévoir le prochain numéro (au point que vous avez probablement besoin d'un échantillon beaucoup plus grand que trois sorties de le faire dependably).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top