从一道面试题说去4
2015-04-09 21:54
99 查看
题目:假设公司有30w人,每个人编号从1~30w。现在公司举办年会,要求随机10w个人出来做为中奖的员工。
分析:30w人随机10w人,利用rand函数即可,但是考虑到随机数有可能重复,加个set去重即可。
代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
#define MAX_NUM 300000
int main(int argc, char **argv)
{
int pos = 0;
set<int> set;
srand((unsigned)time(NULL));
while (pos < 100000) {
int rand_value = (int)MAX_NUM*(1.0*rand()/(RAND_MAX+1))+1; //get value 1~300000
if (set.find(rand_value) != set.end()) {
continue;
}
set.insert(rand_value);
++pos;
}
}
分析:30w人随机10w人,利用rand函数即可,但是考虑到随机数有可能重复,加个set去重即可。
代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
#define MAX_NUM 300000
int main(int argc, char **argv)
{
int pos = 0;
set<int> set;
srand((unsigned)time(NULL));
while (pos < 100000) {
int rand_value = (int)MAX_NUM*(1.0*rand()/(RAND_MAX+1))+1; //get value 1~300000
if (set.find(rand_value) != set.end()) {
continue;
}
set.insert(rand_value);
++pos;
}
}
相关文章推荐
- 从一道面试题彻底搞懂hashCode与equals的作用与区别及应当注意的细节
- 从一道百度面试题到分析输入url到页面返回的过程(或者查询返回过程)
- 从一个面试题来谈C++的多态性
- Shell在大数据时代的魅力:从一道百度大数据面试题想到的点滴
- 从一道面试题看指针与数组的区别
- 从一道面试题来认识java类加载时机与过程
- 从一道面试题谈linux下fork的运行机制
- Shell在大数据时代的魅力:从一道百度大数据面试题想到的点滴
- 忍不住了,我来说两句,从一道面试题说起
- 从一道网易面试题浅谈OC线程安全
- 从一道面试题谈linux下fork的运行机制
- 从一道面试题谈linux下fork的运行机制
- 从一道hive面试题的解决思路中理解hive应用
- 从一道面试题说去 2
- 从一道面试题来认识java类加载时机与过程
- 从一道面试题来认识java类加载时机与过程
- 从一个基础Javascript面试题谈起
- Coder的困惑,从一道面试题说起(downmoon)
- 从一道面试题来认识java类加载时机与过程
- [转]从一道面试题谈linux下fork的运行机制