从一道面试题说去4

简介: 题目:假设公司有30w人,每个人编号从1~30w。现在公司举办年会,要求随机10w个人出来做为中奖的员工。分析:30w人随机10w人,利用rand函数即可,但是考虑到随机数有可能重复,加个set去重即可。


题目:假设公司有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;
	}
}

目录
相关文章
|
Cloud Native 关系型数据库 MySQL
面试题30天打卡-day18
面试题30天打卡-day18
41 0
|
消息中间件 设计模式 关系型数据库
面试题30天打卡-day08
面试题30天打卡-day08
27 0
|
缓存 JavaScript 前端开发
【面试题总结】
【面试题总结】
|
5月前
|
存储 程序员 编译器
C++面试题其二
extern "C" 用于告诉编译器按照C语言的链接方式处理代码,通常用于C++代码与C代码混合编程,以防止因名字修饰(name mangling)引起的链接错误。例如: extern "C" { void c_function(); } 通过这些问题的深入理解和解答,能够更好地掌握C++编程的核心概念和实际应用,为面试做好充分的准备。
75 1
|
算法 应用服务中间件 开发工具
面试题30天打卡-day30
面试题30天打卡-day30
56 0
|
设计模式 算法 Java
面试题30天打卡-day22
面试题30天打卡-day22
61 0
|
存储 NoSQL Java
面试题30天打卡-day24
面试题30天打卡-day24
40 0
|
负载均衡 NoSQL 安全
面试题30天打卡-day14
面试题30天打卡-day14
36 0
|
前端开发 Java 数据库
面试题30天打卡-day01
面试题30天打卡-day01
53 0
|
前端开发
【面试题一】
【面试题一】