初歩的っぽい質問ですみません。プログラムの本文は
#include <iostream> // cout の定義
#include <stdlib.h> // random, srandom の定義
#include <time.h> // time の定義
using namespace std;
void main() {
srandom(time(0)); // 乱数の出発点を現在時刻にする
int x = random();
cout << x << "\n";
}
で、ビルドするとエラーメッセージが
1>------ ビルド開始: プロジェクト: test, 構成: Debug Win32 ------
1> main.cpp
1>x:\myprojects\test\main.cpp(7): error C3861: 'srandom': 識別子が見つかりませんでした
1>x:\myprojects\test\main.cpp(8): error C3861: 'random': 識別子が見つかりませんでした
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
と出ます。
#include <stdlib.h>は出来ていると思うのに、なぜエラーになるのでしょうか。
srandomを使ったサンプルを探してコピペしても動きません。
関係あるかわかりませんが環境は、windows8.1にVisualStudio2010ExpressのC++をインストールした後、
とくに設定は変えていないと思います。
識別子が見つかりませんでした
Re: 識別子が見つかりませんでした
srandom→srand
random→rand
の間違いではないでしょうか?
random→rand
の間違いではないでしょうか?
そのサンプルはどこにありますか?クロー さんが書きました:srandomを使ったサンプルを探してコピペしても動きません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 識別子が見つかりませんでした
返信が遅れてすみません。 このページに書いてあります。
http://ipl.sfc.keio.ac.jp/text/com-pro- ... c6_s5.html
自分もrandとsrandは知っていますが、random、srandomも存在しているように思います。
http://www.wakayama-u.ac.jp/~tokoi/lecture/seminar2/
http://ipl.sfc.keio.ac.jp/text/com-pro- ... c6_s5.html
自分もrandとsrandは知っていますが、random、srandomも存在しているように思います。
http://www.wakayama-u.ac.jp/~tokoi/lecture/seminar2/
Re: 識別子が見つかりませんでした
srandom()、random()はPOSIXで定義されている関数で、Cの標準関数ではありません。
Windowsの開発環境ではMicrosoftが提供していないのではないでしょか。
Windowsの開発環境ではMicrosoftが提供していないのではないでしょか。
Re: 識別子が見つかりませんでした
randomとsrandomは仕様にないため実装されていない、という可能性があります。
http://port70.net/~nsz/c/c89/c89-draft.html#4.10.2
randの精度が不満なら、xorshiftやメルセンヌ・ツイスタの利用を検討してはいかがでしょうか?
http://port70.net/~nsz/c/c89/c89-draft.html#4.10.2
randの精度が不満なら、xorshiftやメルセンヌ・ツイスタの利用を検討してはいかがでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)