私のプログラムのテストケースを自動化しようとしています。テストする数字のランダムな文字列を生成したかったのです...最初のテストはベース2の数字で始まります。ここでnは1から100までの任意の長さnの0と1を生成します。これは私が今までに持っているもので、同じ文字列(同じ長さ)を返し続け、1または0だけを生成します。文字列の全長。ランダムな長さのランダムな文字列を生成する
int digNum = rand() % 100 + 1;
int num;
for(int i = 0; i < digNum; i++) {
num = ((double) rand()/(RAND_MAX)) + 1;
s1 = s1 + to_string(num);
}
cout << s1 << endl;
思考?
'srand'を初期化しましたか?つまり、' srand(time(NULL)) 'のように呼ばれましたか? – muXXmit2X
'(double)rand()/(RAND_MAX)'が何をするのか少し考えてみてください。次に、それを整数に変換するときに何が起こるかを考えます。 –
[ランダム](http://en.cppreference.com/w/cpp/numeric/random)スタンダードライブラリ(C++ 11以降で利用可能)を見てください。これは 'rand()'よりはるかに融通性があります。 。 – Holt