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(2cnc)=O(lg(b−a)2lg(b−a)b−a)=O(lg(b−a))

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)。

E(T)=∑i=1∞2p(1−p)(1−2p(1−p))i−1)=O(12p(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雇佣问题相关推荐

  1. 我们不雇佣数理逻辑不好的学生

    「我们不雇佣数理逻辑不好的学生」这句话是一个公司创始人说的,也是他的公司招聘的唯一硬性标准.如果你能进入这个公司,你的一只脚就跨入了富豪的行列了. 想象一下,如果 1ml 水价值 100 元,那么 1 ...

  2. 2019年企业新增长 从雇佣“机器人员工”开始

    雇佣"机器人员工"似乎是一件美妙的事.它不知疲倦,7x24小时孜孜不倦的工作.它效率极高,一小时内完成人工需要花两天才能完成的工作,几乎不出错.它不会因为心情影响工作效率,也不会和 ...

  3. 雇佣最优秀的开发者?培养可能是更好的选择

    每年的金三银四招聘季是求职者最活跃的时候,开发者会花费大量的时间写简历.刷题.准备面试.同时这也是企业最忙碌的时候,大量高级职位被放出,希望通过招聘解决高端人才的短缺问题. Eduards Sizov ...

  4. BZOJ 2039: [2009国家集训队]employ人员雇佣

    二次联通门 : BZOJ 2039: [2009国家集训队]employ人员雇佣 /*BZOJ 2039: [2009国家集训队]employ人员雇佣最小割先全部雇佣每个人向汇点连边后源点分别向i,j ...

  5. P1791-[国家集训队]人员雇佣【最大权闭合图】

    正题 题目链接:https://www.luogu.com.cn/problem/P1791 题目大意 有nnn个人,雇佣第iii个需要AiA_iAi​的费用,对于Ei,jE_{i,j}Ei,j​表示 ...

  6. 人员雇佣 网络流_雇用Java EE开发人员的一些面试问题

    人员雇佣 网络流 互联网上充斥着Java开发人员的面试问题. 这些问题的主要问题是,它们仅证明候选人具有良好的记忆力,并记住所有语法,结构,常量等.对他/她的逻辑推理没有真正的评估. 我在下面列举一些 ...

  7. 动态规划——雇佣员工(hdu1158)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1158 题目描述: 有一家公司要完成一个课题,该课题分为n个月完成.现在知道每个月至少需要多少人手才能 ...

  8. 查询雇佣的所有员工_想要最好的员工? 让他们自己雇用

    查询雇佣的所有员工 在开放组织中 ,红帽首席执行官吉姆·怀特赫斯特(Jim Whitehurst)将开放组织定义为"使内部和外部都参与社区"的组织. 在Gratipay ,我们追求 ...

  9. Rust 越来越香了!AWS 雇佣 Rust 编译器团队负责人 Felix Klock

    继微软转向 Rust 之后,又一巨头开始投入 Rust 的怀抱. 近日,亚马逊云服务 AWS 透露,该团队已聘请 Rust 编译器联合负责人 Felix Klock.Klock 之前曾在Mozilla ...

最新文章

  1. 线性模型和非线性模型的区别
  2. 用sqlyog怎么设置mysql自动备份,利用sqlyog配置MySQL自动备份sql文件
  3. Spring cloud (1)---Eureka 宣布闭源,Spring Cloud 何去何从?
  4. vue+Java后端进行调试时如何解决跨域问题
  5. JavaScript使用正则表达
  6. 在Java中的foreach循环中调用remove
  7. github ssh 配置_搭建自己的技术博客系列 2:把 Hexo 博客部署到 GitHub 上
  8. 【更新】Chromium引擎集成控件DotNetBrowser V1.13发布 | 全新协议处理程序
  9. 计算与编程思维-Python实践【Python Crash Course】
  10. 怎么接入WAPI网络防止被蹭网
  11. ppt编辑数据链接文件不可用_ppt插入图表数据不能编辑怎么办
  12. eaxsinbx_高等数学导数与微分练习题
  13. xss靶场练习之xss.haozi.me解析及答案
  14. 如何把蓝奏云里的文件进行批量导出分享?蓝奏云批量分享的工具
  15. python 导入第三方包_Python第三方包的导入
  16. 解决JVM堆内存不断扩容导致服务器内存耗尽的问题
  17. @优秀的你!CSDN高校俱乐部主席招募!
  18. 2万5千字大厂面经 | 掘金技术征文
  19. 基于spring boot的邮件微服务消息中间件设计与实现 毕业论文+系统功能图v1.0.vsdx+项目源码
  20. android 按键声音

热门文章

  1. linux asp可以运行吗,宝塔linux面板可以搭建运行asp网站程序吗
  2. JSP对象,JavaBean,Servlet简易教程
  3. HTML iframe用法
  4. 陈省身:三角形内角和不等于180°
  5. tms320f2812中断系统分析及其c语言编程,TMS320F2812中断系统分析及其C语言编程
  6. 如何打开MDF数据库文件
  7. Qt实现基于orb算法的两种长截图
  8. pytorch下载慢的问题解决方法
  9. 计算机毕业设计Java畅言情感互助网站(源码+系统+mysql数据库+lw文档)
  10. adb 连接无线手机安装 apk