0

私は C++ を初めて使用し (C# のコーディングに使用)、Visual Studio の C++ フォーム環境で乱数を作成する方法がわかりません。これは私が使用するコードです:

int randNumber;
srand(time(NULL));
randNumber = rand();
MessageBox::Show(randNumber.ToString());

そのコードを form_load ブロックに入れただけです。

私が得るエラーメッセージは次のとおりです。

エラー C3861: 'time': 識別子が見つかりません

エラー C3861: 'rand': 識別子が見つかりません

編集 :

私は次のように Form1.h ファイルにインクルードを入れました:

#pragma once

#include <cstdlib>
#include <ctime>

namespace Srand {

それは機能しているように見えますが、乱数は非常に奇妙です。

3100 3130 3146 3169 3192 3208 3231 3250 3270 3286

ランダムではないように見えますが、ランダムに大きいだけです。

4

3 に答える 3

0

する必要が#include <cstdlib>あり#include <ctime>ます。

于 2013-04-03T07:15:11.760 に答える
0

数値は時間に依存するため、非常に近い結果が得られます。最初に非常に大きな数を掛けてから、いくつかの大きな素数に関して mod を取るなど、 time() に何らかの変換を適用することにより、数をランダム化することができます。

于 2013-04-03T10:27:28.423 に答える