C++编写生成不重复的随机数代码
vectorgetRandom(int total) { srand((int)time(NULL)); std::vector input = *new std::vector (); for (int i = 0; i < total; i++) { input.push_back(i); } vector output = *new vector (); int end = total; for (int i = 0; i < total; i++) { vector ::iterator iter = input.begin(); int num = random()%end; iter = iter+num; output.push_back(*iter); input.erase(iter); end--; } return output; }
再来一例:
void permutation(int n, int *z_array)
{
int i, j, k, z;
int buffer[N];
for (i=0; i
方法三:来个复杂点的
#include
#include
#include "iostream"
#include
#define N 53
using namespace std;
//print array
void display(int *a)
{
for (int i =0;i以上3种方法均可实现生成不重复的随机数,具体的效率如何,小伙伴们自己测试下吧。



