博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
All roads lead to Rome, some smooth, some rough.
阅读量:6209 次
发布时间:2019-06-21

本文共 986 字,大约阅读时间需要 3 分钟。

 

算法导论习题5.2.4介绍了一个帽子保管问题(hat-check problem):有n位顾客,他们每个人给餐厅负责保管帽子的服务生一顶帽子。服务生以随机的顺序将帽子归还给顾客。请问拿到自己帽子的顾客的期望数目是多少?

解法一:利用算法导论一书中介绍的indicator random variables,假设随机变量Xi满足(1<=i<=n):

 

 

那么总的随机变量x满足:

对于每一个顾客,他拿到自己帽子的概率是1/n,所以:

  

所以,

这个思路根据算法导论书上的讲解比较容易想到,但是真正想的时候我不免回到了忘日学习概率论的惯性思维中,于是有了解法二,比解法一复杂不少。

解法二

基本思想是利用 期望=\sum_{i=1}^{n}i*i个人拿到自己帽子的概率。这样一来需要计算有且仅有i个人拿到自己帽子的概率。容易发现,关键的步骤是找到没有一个人拿到自己帽子的概率,因为有且仅有i个人拿到自己帽子的总情况数可以通过先用C(i,n)的选法将i个拿对帽子的人固定,然后剩下的(n-i)个人都没有拿到自己帽子的情况数来计算。于是先将问题转化成求n个人都没有拿到自己帽子的情况数。这个问题其实就是著名的伯努利放错信封问题。可以利用容斥原理解决。

容易得到,有一个人i拿对帽子的总情况数是(n-1)!,有两个人i和j拿对帽子的总情况数是(n-2)!,...,有(n-2)个人(人已经选定)拿对帽子的总情况数是2!,有(n-1)个人拿对帽子,也就是有n个人拿对帽子的情况数是1.那么由容斥原理,有人拿对帽子的情况总数是:

那么没有一个人拿对帽子的情况总数应该是:

这样一来利用前面说过的期望公式,可以得到最终的答案是:

可以证明...(除了数学归纳法我暂时还没有想出更好的方法)这个求和的结果就是1.

两种方法都是利用了概率论中的算法,一个从随机变量入手,一个从期望的定义入手,虽然都得到了最终的结果,但是解法二明显更加复杂。

很久没有利用过数学了,脑子反应特别慢。昨天看了看微软的笔记题目,有些看上去像是当年的数学竞赛题目,当年可以秒杀的,现在看上去却半天没有想法,学了这么多年,都学了些啥呢?...希望伴随着算法导论的学习自己能够找回数学状态。

 

转载于:https://www.cnblogs.com/bovine/archive/2011/09/21/2184431.html

你可能感兴趣的文章
SumPF
查看>>
我的友情链接
查看>>
Active Directory还原工具之一ADRestore 1.1
查看>>
启用和配置Office 365多重身份验证
查看>>
穿越时空,望平板电脑未来发展
查看>>
WinXP、Win7脚本自动加域及用户资料迁移
查看>>
我的友情链接
查看>>
VIM编辑器详解
查看>>
运维自动化之使用Cobbler自动化安装系统与FAQ
查看>>
mysql错误记录1(密码不正确or忘记)
查看>>
软件公司美女多,可以明显提高纯爷们的整体的工作效率
查看>>
2012年在杭州承接的第一个软件项目经验浅谈 -- 门户网站数据库、ASP.NET程序性能改进...
查看>>
******lifenote******
查看>>
date和clock详解
查看>>
python和shell 传递变量
查看>>
DS4000更换硬盘
查看>>
php数组键值排序
查看>>
mysql优化(1)show命令 慢查询日志 explain profiling
查看>>
JSP 内置对象(上)
查看>>
Linux_DHCP中继服务配置
查看>>