void pick(vector<int> a, int n, int m) { for (int i = 0; i < m; i++) { int j = rand() % (n - i) + i; swap(a[i], a[j]); } } 这样应该可以吧,第一次1/n,第二次1/(n - 1)* (n - 1)/n = 1/n以此类推