場景
- 使向量各個元素等概率出現在各個位置
實現
template<typename T>
void permute(vector<T> &V) {
for (int i = V.size(); i > 1; --i) { // 隨機置亂向量 使各個元素等概率出現在各個位置
swap(V[i - 1], V(rand() % i)); // 秩i-1的元素和[0,i)的元素隨機置換
}
}
template<typename T>
void permute(vector<T> &V) {
for (int i = V.size(); i > 1; --i) { // 隨機置亂向量 使各個元素等概率出現在各個位置
swap(V[i - 1], V(rand() % i)); // 秩i-1的元素和[0,i)的元素隨機置換
}
}