ハムスターに飼われる院生のブログ

自分用メモが中心のブログです。

乱数シードを変えてプログラムを繰り返し実行する

乱数シードを少しずつ変えてプログラムを繰り返し実行する時用のメモ。C++とbatファイルに関する話。

メイン関数自体に引数を渡すようし、batファイルで異なる引数を与えることで実現させる。

乱数のシードをコマンドラインから与えられるようにするため、main.cppを以下のように書く。このプログラムのseedを乱数のシードとして使用すれば、コマンドラインから与えられた値を乱数シードとすることができる。

#include <iostream> 
using namespace std;
int main(int argc, char* argv[])
{
	int seed;
	seed = atoi(argv[1]);
	cout << "seed = " << seed << endl;
}

このプログラムをtest.exeとしてビルドする。

なお、コマンドプロンプトではなくVisual Studio上で実行する際にコマンドライン引数を与える場合(デバッグの時など)はソリューションエクスプローラから

右クリック→プロパティ

にてプロパティページを出し、

プロパティページ→構成プロパティ→デバッグ→コマンド引数

にて与えたい引数を入力しておけばよい。


次にバッチファイルを作成する。
test.exeを実行するためのバッチファイルは以下のように作成した。

@echo off
@setlocal enabledelayedexpansion

for /l %%i in (0,1,5) do (
	test.exe %%i
)
pause