如果你不能使用random_shuffle函數,你可以使用其他方法來實現隨機打亂數組的功能。以下是一種可能的解決方案:
遍歷數組,將每個元素與一個隨機位置的元素進行交換。可以使用rand函數生成一個隨機索引。
重復上述步驟多次,以確保數組被充分打亂。
以下是一個示例代碼:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <vector>
using namespace std;
void randomShuffle(vector<int>& nums) {
srand(time(0)); // 設置隨機種子為當前時間
for (int i = 0; i < nums.size(); i++) {
int randomIndex = rand() % nums.size(); // 生成隨機索引
swap(nums[i], nums[randomIndex]); // 交換當前位置和隨機位置的元素
}
}
int main() {
vector<int> nums = {1, 2, 3, 4, 5};
randomShuffle(nums);
for (int num : nums) {
cout << num << " ";
}
cout << endl;
return 0;
}
這個示例代碼使用了rand函數來生成隨機索引,并使用srand函數設置隨機種子為當前時間,以確保每次運行程序時都能得到不同的隨機結果。然后,通過遍歷數組,將每個元素與一個隨機位置的元素進行交換來實現隨機打亂數組的功能。