なぜ私はそれを実行するたびに同じ配列になりますか?整数の無作為配列を生成しようとすると、同じリストがそれぞれ実行されます。 C++
int arr[100];
for (int i = 0; i < 100; i++) {
arr[i] = rand() % 11 + (-5);
}
なぜ私はそれを実行するたびに同じ配列になりますか?整数の無作為配列を生成しようとすると、同じリストがそれぞれ実行されます。 C++
int arr[100];
for (int i = 0; i < 100; i++) {
arr[i] = rand() % 11 + (-5);
}
ランダムシードを設定するにはstd::srand(std::time(0));
を使用してください。再現性のある結果を得るには、同じシードを使用してください。http://en.cppreference.com/w/cpp/numeric/random/srandを参照してください。
は、現在の時刻と、たとえば、シード乱数発生器に必要です。
#include <time.h>
#include <stdlib.h>
srand(time(NULL));
乱数に 'srand'を使用することは、数年間最も標準的な解決策ではありませんでした。 –
乱数に 'srand'を使用することは、数年にわたって最高の標準ベースの解決策ではありませんでした。 –
それは私のためのニュースです - より良い解決策は何ですか? –
@DavidStutzここを参照してください:http://en.cppreference.com/w/cpp/numeric/random –