我寫了這個代碼工作正常,但每次輸出是相同的。所以沒有任何隨機的。好奇知道爲什麼! 假設:33名學生 第一行:7名學生 第二行:9名學生 第三行:9名學生 第4行:8名學生隨機返回相同的輸出每次
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
using namespace std;
int main() {
vector<int> random;
for (int i = 1; i < 34; i++)
random.push_back(i);
random_shuffle(random.begin(), random.end());
for (int i = 1; i < 8; i++)
cout << random[i] << " " ;
cout << endl;
int i = 7;
int num_seats = 1;
for (int j = 1; j <=3; j++) {
while (num_seats < 10 && i < 33) {
cout << random[i++] << " " ;
num_seats++;
}
cout << endl;
num_seats = 1;
}
}
大家知道,C++ 11有一個['iota'](http://en.cppreference.com/w/cpp/algorithm/iota )功能,可以幫助您避免使用連續數字填充矢量。 – chris
您是否向隨機數生成器提供了[隨機種子](http://en.wikipedia.org/wiki/Random_seed)? – Veger