生成一个不重复随机序列

一:

#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>

int main()
{
 std::vector<int> ivec(0, 100);
 for ( int i=0; i<100; ++i )
  ivec.push_back(i);

 std::copy( ivec.begin(), ivec.end(),    std::ostream_iterator<int>(std::cout, " ") );
 std::cout << "/n/n";
 std::vector<int>::iterator it = ivec.begin();
 std::vector<int>::iterator it_end = ivec.end();
 std::random_shuffle( ivec.begin(), ivec.end() );

 std::copy( it, it_end, std::ostream_iterator<int>(std::cout, " ") );
 return 0;
}

二:

#include <time.h>
#include <iostream>
void func();
void main()
{
 func();
}
void func()
{
 int ia[100],obj[100];
 srand((unsigned int)time(NULL));
 
 for(int i=100;i>0;i--)
 {
  obj[100-i]=rand()%i;
  ia[100-i]=100-i;
 }

 for(int i=0;i<100;i++)
 {
  for(int j=0;j<=obj[i];j++)
  {
   obj[i]+= ia[j]==-1?1:0;
   ia[j]= j==obj[i]?-1:ia[j];
  }
  std::cout<<(obj[i])<<((i+1)%10?' ':'/n');
 }
}

你可能感兴趣的:(生成一个不重复随机序列)