赞
踩
目录
三、使用C++生成随机序列(该序列为自然数序列,且序列内不含重复元素)
- #include<vector>
- #include<random>
- struct Pair
- {
- unsigned int_num;//对应计数序列
- unsigned rand_num;//对应辅助序列
- };
- bool isSmall_randnum(const Pair& s1, const Pair& s2)
- {
- return s1.rand_num < s2.rand_num;
- }
- int get_randseqlist(vector<unsigned>& randseqlist,int num)
- {
- /*
- 函数功能:生成由0到num-1的num个整数构成的一个随机序列。随机序列通过randseqlist传出
- */
-
- randseqlist.clear();
- Pair pair;
- vector<Pair> pairs;
-
- //生成随机数
- static default_random_engine e;
- static uniform_int_distribution<unsigned> u(0, num);
-
- for (unsigned i = 0; i < num; i++)
- {
- pair.int_num = i;
- pair.rand_num = u(e);
- pairs.push_back(pair);
- }
- sort(pairs.begin(), pairs.end(), isSmall_randnum);//以rand_num为“关键字”排序
- for (size_t i = 0; i < num; i++)
- {
- randseqlist.push_back(pairs[i].int_num);
- }
- return 0;
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。