CLRS 5.1雇佣问题
5.1-1
由于我们可以比较任意两个应聘者,这说明我们可以有一个应聘者的优劣顺序,因此我们知道应聘者的全部次序。
5.1-2
设 n=b−an=b-a,我们需要找到最少的 cc 位二进制数,使得 2c≥n2^c\ge n,即 c=⌊lgn⌋+1c=\lfloor \lg n\rfloor+1,则:
1) 调用 cc 次RANDOM(0,1),产生 cc 位二进制数 rr;
2) 若 rr 大于 nn,重新 1);
3) 返回 a+ra+r。
生成某个随机数的概率为(12)c(\frac12)^c,若此数大于 nn 则需要重复第 2 步,设第一次生成的数小于等于 nn 的概率为 p=n2cp=\frac{n}{2^c} ,否则需要第二次生成 rr 。这是一个几何分布,我们要 1/p1/p 的概率生成不大于 nn 的数,即 2cn\frac{2^c}{n}。我们调用 cc 次RANDOM(0,1)
,因此有:
O\bigg(\frac{2^c}{n} c\bigg) = O\bigg(\frac{\lg(b-a)2^{\lg(b-a)}}{b-a}\bigg)= O(\lg(b-a))
#include <iostream>
#include <random>
#include <ctime>
using namespace std;int random_01()
{static default_random_engine e(time(0));static bernoulli_distribution b;//伯努利分布if (b(e))return 1;else return 0;
}int random_ab(int a, int b)
{int n = b - a;int c = log(static_cast<double>(n)) / log(static_cast<double>(2)) + 1;while (true){int res = 0;for (int i = 0; i != c; ++i)res += random_01() << i;if (res + a <= b)return res + a;}
}int main()
{for (int i = 0; i < 10; ++i)cout << random_ab(0, 100) << ' ';cout << endl;return 0;
}
5.1-3
使用两次BIASED-RANDOM()
产生两个随机数 xx,yy(x,y∈(0,1)x,y\in (0,1)),若 x=yx=y 则返回 xx,否则重新产生 x,yx,y。
出现两个1的概率为 p2p^2,出现两个0的概率为 (1−p)2(1-p)^2,出现一个1和一个0的概率是 2p(1−p)2p(1-p)。
\eqalign { E(T) &= \sum_{i=1}^{\infty} {2p(1-p)(1-2p(1-p))^{i-1})} \\ & = O(\frac {1}{2p(1-p)})}
CLRS 5.1雇佣问题相关推荐
- 我们不雇佣数理逻辑不好的学生
「我们不雇佣数理逻辑不好的学生」这句话是一个公司创始人说的,也是他的公司招聘的唯一硬性标准.如果你能进入这个公司,你的一只脚就跨入了富豪的行列了. 想象一下,如果 1ml 水价值 100 元,那么 1 ...
- 2019年企业新增长 从雇佣“机器人员工”开始
雇佣"机器人员工"似乎是一件美妙的事.它不知疲倦,7x24小时孜孜不倦的工作.它效率极高,一小时内完成人工需要花两天才能完成的工作,几乎不出错.它不会因为心情影响工作效率,也不会和 ...
- 雇佣最优秀的开发者?培养可能是更好的选择
每年的金三银四招聘季是求职者最活跃的时候,开发者会花费大量的时间写简历.刷题.准备面试.同时这也是企业最忙碌的时候,大量高级职位被放出,希望通过招聘解决高端人才的短缺问题. Eduards Sizov ...
- BZOJ 2039: [2009国家集训队]employ人员雇佣
二次联通门 : BZOJ 2039: [2009国家集训队]employ人员雇佣 /*BZOJ 2039: [2009国家集训队]employ人员雇佣最小割先全部雇佣每个人向汇点连边后源点分别向i,j ...
- P1791-[国家集训队]人员雇佣【最大权闭合图】
正题 题目链接:https://www.luogu.com.cn/problem/P1791 题目大意 有nnn个人,雇佣第iii个需要AiA_iAi的费用,对于Ei,jE_{i,j}Ei,j表示 ...
- 人员雇佣 网络流_雇用Java EE开发人员的一些面试问题
人员雇佣 网络流 互联网上充斥着Java开发人员的面试问题. 这些问题的主要问题是,它们仅证明候选人具有良好的记忆力,并记住所有语法,结构,常量等.对他/她的逻辑推理没有真正的评估. 我在下面列举一些 ...
- 动态规划——雇佣员工(hdu1158)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1158 题目描述: 有一家公司要完成一个课题,该课题分为n个月完成.现在知道每个月至少需要多少人手才能 ...
- 查询雇佣的所有员工_想要最好的员工? 让他们自己雇用
查询雇佣的所有员工 在开放组织中 ,红帽首席执行官吉姆·怀特赫斯特(Jim Whitehurst)将开放组织定义为"使内部和外部都参与社区"的组织. 在Gratipay ,我们追求 ...
- Rust 越来越香了!AWS 雇佣 Rust 编译器团队负责人 Felix Klock
继微软转向 Rust 之后,又一巨头开始投入 Rust 的怀抱. 近日,亚马逊云服务 AWS 透露,该团队已聘请 Rust 编译器联合负责人 Felix Klock.Klock 之前曾在Mozilla ...
最新文章
- 线性模型和非线性模型的区别
- 用sqlyog怎么设置mysql自动备份,利用sqlyog配置MySQL自动备份sql文件
- Spring cloud (1)---Eureka 宣布闭源,Spring Cloud 何去何从?
- vue+Java后端进行调试时如何解决跨域问题
- JavaScript使用正则表达
- 在Java中的foreach循环中调用remove
- github ssh 配置_搭建自己的技术博客系列 2:把 Hexo 博客部署到 GitHub 上
- 【更新】Chromium引擎集成控件DotNetBrowser V1.13发布 | 全新协议处理程序
- 计算与编程思维-Python实践【Python Crash Course】
- 怎么接入WAPI网络防止被蹭网
- ppt编辑数据链接文件不可用_ppt插入图表数据不能编辑怎么办
- eaxsinbx_高等数学导数与微分练习题
- xss靶场练习之xss.haozi.me解析及答案
- 如何把蓝奏云里的文件进行批量导出分享?蓝奏云批量分享的工具
- python 导入第三方包_Python第三方包的导入
- 解决JVM堆内存不断扩容导致服务器内存耗尽的问题
- @优秀的你!CSDN高校俱乐部主席招募!
- 2万5千字大厂面经 | 掘金技术征文
- 基于spring boot的邮件微服务消息中间件设计与实现 毕业论文+系统功能图v1.0.vsdx+项目源码
- android 按键声音
热门文章
- linux asp可以运行吗,宝塔linux面板可以搭建运行asp网站程序吗
- JSP对象,JavaBean,Servlet简易教程
- HTML iframe用法
- 陈省身:三角形内角和不等于180°
- tms320f2812中断系统分析及其c语言编程,TMS320F2812中断系统分析及其C语言编程
- 如何打开MDF数据库文件
- Qt实现基于orb算法的两种长截图
- pytorch下载慢的问题解决方法
- 计算机毕业设计Java畅言情感互助网站(源码+系统+mysql数据库+lw文档)
- adb 连接无线手机安装 apk