随机算法之—结果集中随机取出N个结果
来源:互联网 发布:linux boot 编辑:程序博客网 时间:2024/06/06 00:49
随机算法在互联网产品中随处可见,验证码就是其中一种,还有很多随机出结果的场景,数据挖掘的随机抽样等等
而其中非常常见的一种就是在一个大的结果集中随机高效抽取N个结果下面是自己实现的,在工程中使用的随机取N个结果的随机算法
#include<iostream>#include<stdlib.h>#include<vector>using namespace std;template<class T>void rand_n(vector<T>& src, int rand_count, vector<T>& rand_n_vec){ size_t len = src.size(); if(rand_count >= len) { rand_n_vec = src; return; } for(size_t i = 0; i < rand_count; i++) { size_t j = rand() % len; T tmp = src[i]; src[i] = src[j]; src[j] = tmp; } rand_n_vec.clear(); rand_n_vec.reserve(rand_count); for(size_t i = 0; i < rand_count; i++) { rand_n_vec.push_back(src[i]); }} int main(){ srand(time(NULL)); vector<int> a; vector<int> b; for(int i = 0;i < 10; i++) a.push_back(i); for(int i = 0; i < 10; i++) { rand_n(a, 2, b); for(int j = 0; j < b.size(); j++) cout<<b[j]<<' '; cout<<endl; }}
0 0
- 随机算法之—结果集中随机取出N个结果
- 如何从结果集中获得随机结果
- 如何从结果集中获得随机结果
- 如何从结果集中获得随机结果
- 如何从结果集中获得随机结果
- MySql从表结果集中随机取一条数据
- MySql从表结果集中随机取一条数据
- MySql从表结果集中随机取一条数据
- 得到随机排序结果
- 得到随机排序结果
- 关于从n个数中随机取出m个
- 遍历n个元素取出等概率随机取出其中之一元素
- 遍历n个元素取出等概率随机取出其中之一元素
- 遍历n个元素取出等概率随机取出其中之一元素
- 遍历n个元素取出等概率随机取出其中之一元素
- 第十三章:遍历n个元素取出等概率随机取出其中之一元素
- sqlserver 查询结果随机排序
- sql 查询结果随机排序
- Ubuntu下git使用过程
- PHP SDK for sinaweibo
- Java小程序
- Android屏幕适配全攻略(最权威的官方适配指导)
- spring 配置文件属性详解①
- 随机算法之—结果集中随机取出N个结果
- Unity插件之NGUI学习(5)—— 创建Label图文混排及文字点击
- 表单基本信息check
- iOS 学习日志 : Xcode添加启动图
- iOS- NSTimeInterval获取时间间隔
- android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别
- Mysql5.7.10在Mac安装版本实践
- SVN冲突解决和注意事项
- 工作环境搭建(9) - CentOS7命令行安装Android NDK