泛型算法(十七)之随机洗牌算法
2016-01-20 14:25
204 查看
1、random_shuffle(RandomAccessIterator first, RandomAccessIterator last):n个元素有n!个排列。该函数给出随机选择的一个排列。
2、random_shuffle(RandomAccessIterator first, RandomAccessIterator last, RandomNumberGenerator& gen):使用给定的随机数发生器来生产随机选择的一个排列。
3、shuffle(RandomAccessIterator first, RandomAccessIterator last, URNG&& g):C11版,其中参数g为随机数发生器(uniform random number generator),如在<random>中定义的标准随机数发生器。
std::vector<int> c = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; //把序列c中的元素随机打乱顺序 std::random_shuffle(c.begin(), c.end()); //输出 for (auto var : c) { std::cout << var << ","; } //打印结果:8,1,9,2,0,5,7,3,4,6,
2、random_shuffle(RandomAccessIterator first, RandomAccessIterator last, RandomNumberGenerator& gen):使用给定的随机数发生器来生产随机选择的一个排列。
std::vector<int> c = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; //使用给定的随机数发生器把序列c中的元素随机打乱顺序 std::random_shuffle(c.begin(), c.end(), [](int i){ return std::rand() % i; }); //输出 for (auto var : c) { std::cout << var << ","; } //打印结果:8,1,9,2,0,5,7,3,4,6,
3、shuffle(RandomAccessIterator first, RandomAccessIterator last, URNG&& g):C11版,其中参数g为随机数发生器(uniform random number generator),如在<random>中定义的标准随机数发生器。
相关文章推荐
- 如何手动获得 comparion report
- ios-基础用法之【2】-Objective-c 语法,类/属性/函数
- pydev注释颜色修改
- C# webBrowser 通过代理访问网页
- 禁止跨域访问
- 数据库基本范式-学习整理
- Android创建布局按钮
- 前端大牛得到的最佳职业生涯建议
- Magento 在CentoOS7下提示没有写入的权限 - 即使用了chmod -R 777
- (Murphy) Linux 动态库机制概要小结(持续更新ing)
- 串行FLASH数据缓冲区的管理
- ubuntu12.04 U盘自动挂载配置
- Vaadin
- MySQL视图介绍
- 欢迎使用CSDN-markdown编辑器
- spring框架的深入理解
- 初步了解Linux内核 (2)
- maven不同配置文件打包
- Key/Value之王Memcached初探:一、掀起Memcached的盖头来
- eclipse 高效快捷键