本文將為您講述(也算是記錄),如何生成一個隨機的不重復的數組(也可以說是列表),當然所要填充的數都是整數。
下面來看下怎麼實現吧:
Test_Random.cpp1.首先創建數組對象a[],當然根據個人需要還可以用double或其他類型的數組。
2.給數組賦初值,代碼中是for循環直接給a[]中各個元素分別賦予了1~1000的整數值。
3.使用random_shuffle高斯隨機將數組中的元素打亂順序,這樣就生成了隨機數組;如果你想更亂,可以多次調用random_shuffle進行操作。
4.Show出隨機數組,查看效果。
問題:如果我想要生成可變長度的隨機數列又該怎麼辦呢?如下方法是否可行呢?
int main() { int* a = null; a = new int[1000]; for(int i=0;i<1000;i++) { a[i] = i; } int* a_begin = a; int* a_end = a + sizeof(a)/sizeof(int); random_shuffle(a_begin,a_end); for(int j=0; j<1000; j++) { cout<<a[j]<<"\t"; } getchar(); return 0; }
注:如上代碼有興趣的盆友們請盡情嘗試吧,不用怕小伙伴們都驚呆了!
Solution:要生成可變長度的隨機數列,正確可行的方案又是什麼呢?
TestRandom2.cpp1.首先創建vector<>對象a,當然根據個人需要還可以用double或其他類型。
2.for循環插入1000個元素,數值范圍是1~1000。
3.使用random_shuffle高斯隨機將數組中的元素打亂順序,這樣就生成了隨機數組;如果你想更亂,可以多次調用random_shuffle進行操作。
4.Show出隨機數組,查看效果。
5.結束時注意清空vector<>。