乱数シードを変えてプログラムを繰り返し実行する
乱数シードを少しずつ変えてプログラムを繰り返し実行する時用のメモ。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