MSVCRT.DLLは、そのランド()関数のための線形合同法を使用していますか?
質問
私は3つのサイコロの顔を生成するためのMSVCRTのランド()関数を使用するプログラムの出力を予測しようとしています。私は、コードのようなものであると信じて:
線形合同ジェネレータは、シーケンス内の次の番号を予測するために、私は予測プログラムを使用することができればdice[0] = rand() % 6 + 1; dice[1] = rand() % 6 + 1; dice[2] = rand() % 6 + 1;
、と私は思っていた。
解決
あなた自身のために参照してください:C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\rand.c
(それとも、VCコマンドプロンプトから実行している場合%VCINSTALLDIR%\crt\src\rand.c
を使用しています。)
(と仮定すると、私はそれを投稿したい。それは2行です。の少なくとも標準バージョンのVCの持っているが、ライセンスがそれを許可するかどうかわからない。)
他のヒント
メモリが提供している場合、
、はい、それは線形合同法だ - しかし、何それは返すことは3よりもあなたはおそらくはるかに大きいサンプルを必要とするポイントに次の番号を(予測の難しさを増大させ、より大きな出力の残りの部分でありますそうdependably行うための出力)。
所属していません StackOverflow