码迷,mamicode.com
首页 > 其他好文 > 详细

智联三面经历

时间:2016-01-28 18:56:50      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

今天三面的时候,海归派的部门boss给我出了三道题,前两道暂且不提,第三道很有意思,作文以记之。

题目3:1楼到n楼的每层电梯门口都放着一颗钻石,钻石大小不一(各不相同)。你乘坐电梯从1楼到n楼,每层楼电梯门都会打开一次,只能拿一次钻石且没有掉头向下的机会,问怎样才能拿到「最大」的一颗?

读完题目我第一反应是动态规划问题,之前记得碰到过类似的扔鸡蛋求临界楼层问题,但仔细一看题目,应该是毫不相关,而且这道题看上去是“无解的”。

我当时不确定问题,就问boss这道题看似无法保证最优解,boss笑着告诉我说你告诉我你思路即可,并给我限制了7分钟的解题时间。

我应该是5分钟内给出了思路,大致如下:

1.肯定不会在一开始就伸手拿钻石,因为最大那颗钻石放在一楼概率是0.1

2.二楼该不该拿?因为二楼有两种可能,钻石比1楼大,也可能比1楼小,同样的最大那颗钻石放在2楼概率也为0.1,但是有了1楼钻石做参照,2楼钻石较大时去拿,显然获取到最大的那颗钻石的概率更大,但是最大的钻石出现在1楼或2楼的概率为0.2,还是太低,不取。

3.根据以上思路,应该会有某个楼层k,我们将k楼层之前的楼层做为训练集,k楼层做为支持向量,凡是在k层之后出现的比之前所有钻石都大的那颗我们就拿下。这样应该能保证取到最大的那颗钻石的概率最大。

这也只是我这五分钟之内的简陋思路,并未深究,部门boss对我的思路表示比较满意,并提示我回去查看37%法则,有严格数学证明。

 

====================================================================

根据此题我也专门查看了37%法则,依据法则解题如下

====================================================================

我的思路碰巧和37%法则相似,假设有n个楼层,n可以趋向于无穷大。

对于某个固定楼层k,如果所有钻石中最大的那颗钻石出现在了第 i 个位置(k < i ≤ n),要想让它正好被我们选中,就必须得满足前 i-1 个钻石中的最大的钻石在前 k 层里面,这有 k/(i-1) 的可能。考虑所有可能的 i,我们便得到了试探前 k 层之后能选中最大钻石的总概率 P(k):

技术分享【1】

用 x 来表示 k/n ,(假设 n 充分大),则公式1可以写成:

技术分享【2】

对P(k)求导令其为0(求极值),解得k=n/e

也就是说,在我们这道题目中应该在k=10/e≈3.678=4层 

也就是说,我们在4层过后取第一颗出现的,比之前4层都要大的钻石即可保证1/e的概率(约为37%)拿到最大的那颗钻石。 

假如没有出现这样的钻石,我们取第十层的那颗即可。

 

这其实就是最大似然估计,然而我数学底子一般,没事还要多翻翻书。

 

智联三面经历

标签:

原文地址:http://www.cnblogs.com/wangjunyan/p/5166925.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!