亚马逊三面的面试题

wutongye 2012-10-07 04:02:53
桶中有M个白球,小明每分钟从桶中随机取出一个球,涂成红色(无论白或红都涂红)再放回,问小明将桶中球全部涂红的期望时间是?
...全文
1783 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiacye13 2013-06-21
  • 打赏
  • 举报
回复
信息量很大啊。。。一说期望怎么感觉数学没有学呢。。。
赵4老师 2013-06-21
  • 打赏
  • 举报
回复
《概率论与数理统计》
lifeisshortyouneed 2013-06-21
  • 打赏
  • 举报
回复
弱弱的问一句 什么叫期望时间?
zhf24148517 2013-06-21
  • 打赏
  • 举报
回复
引用 27 楼 cfwyy 的回复:
弱弱的问一句 什么叫期望时间?
...我也忘了,貌似概率与统计里学过?...
ppsharp 2013-06-20
  • 打赏
  • 举报
回复
大学数学早就忘光了。 九霄云外了。
狂啃馍馍 2013-06-20
  • 打赏
  • 举报
回复
要是工作时间很长了,这些基础有没有打的很扎实,各位请问还有必要再重新学习一遍吗?
H美好未来H 2012-10-13
  • 打赏
  • 举报
回复
M*(ln(M)+C) 证明有点复杂啊
Flammable_ice 2012-10-11
  • 打赏
  • 举报
回复
假设桶中已有x个红球。设从桶中拿球再涂色再放回桶中需要单位时间t.在第x+1个白球被涂红之前,我们来分析一下:
只进行了一次取球操作就能拿到白球并且涂红:有(m-x)/m的几率拿到白球(所用时间为((m-x)/m)*t),有x/m的几率拿到红球。在拿到白球后,我们只需要t个时间就可以完成对第x+1个白球涂红(所用时间为(m-x)/m*t).

还要进行第二次取球操作就能拿到白球并且涂红:而如果我拿到红球的话,需要我再次从桶中拿球,拿到红球的几率就是(x/m)^2,拿到白球的几率是((m-x)/m)*x/m,同理再拿到白球后就不需要再次拿球(所用时间为((m-x)/m)*x/m*2t)。

还要进行第三次取球操作就能拿到白球并且涂红:拿到红球的几率是((x/m)^3),拿到白球的几率是((m-x)/m)*(x/m)^2),再拿到白球后就不需要再次拿球(所用时间为((m-x)/m)*(x/m)^2*3t)。

......

还要进行第n次取球操作就能拿到白球并且涂红:拿到红球的几率是((x/m)^n),拿到白球的几率是((m-x)/m)*(x/m)^(n-1)),再拿到白球后就不需要再次拿球(所用时间为((m-x)/m)*(x/m)^(n-1)*nt)。

所以在第x+1个白球被涂红之后,所花费的时间为:
所以期望时间为:E(x+1)=((m-x)/m)*t+((m-x)/m)*x/m*2t+((m-x)/m)*(x/m)^2*3t+...((m-x)/m)*(x/m)^(n-2)*(n-1)t+((m-x)/m)*(x/m)^(n-1)*nt+....
对上面式子进行化简:
m*E(x+1)=(m-x)*t(1+(x/m)*2+(x/m)^2*3+...(x/m)^(n-2)*(n-1)+(x/m)^(n-1)*(n)+....) (m)式
x*E(x+1)=(m-x)*t( (x/m)*1+(x/m)^2*2+... +(x/m)^(n-1)*(n-1)+(x/m)^n*(n)) (x)式
(m)式-(x)式:(m-x)*E(x+1)=(m-x)*t(1+(x/m)+(x/m)^2+(x/m)^(n-1)-((x/m)^n)*n)
E(x+1)=t*(1*(1-(x/m)^n)/(1-x/m)-((x/m)^n)*n)
E(x+1)=t*(m*(1-(x/m)^n)/(m-x)-((x/m)^n)*n)
E(x+1)=t*((m/(m-x))*(1-(x/m)^n)-((x/m)^n)*n)
E(x+1)=t*((m/(m-x)-(m/(m-x))*(x/m)^n-((x/m)^n)*n)
E(x+1)=t*((m/(m-x)-(x/m)^n*((m/(m-x))+n))
x<=m //第x次白球涂红不能超过球的个数
设y(n)=(x/m)^n*((m/(m-x))+n) (x<=m)
设a=x/m(a<=1)带入y(n)=(a^n)*((1/(1-a))+n)=(a^n)*(1/(1-a))+(a^n)*n)
y(n)=lim(n->无穷大)=0*(1/(1-a))+(a^n)*n(因为a是常数)=(a^n)*n=0*无穷大=无穷大/无穷大
应用洛必达法则:=1/(a^(-n)lna(-1))当x->正无穷大a^(-n)=(1/a)^n, (1/a)>1 ,a^(-n)->无穷大
又因为设b=1/lna(-1)>0(并且是常数) 所以y(n)=lim(n->无穷大)=b/无穷大=0
所以E(x+1)=t*(m/(m-x)-0)=(m/(m-x))*t
所以 E(1)=m/(m-0)*t=t
E(2)=m/(m-1)*t
E(3)=m/(m-2)*t
....
E(m)=m/(m-(m-1))*t=mt
所以E=E(1)+E(2)+E(3)+...E(m)=m(1/m+1/(m-1)+1/(m-2)+...+1/1)=mln(m)
//如果楼主数学基础比较好的话,相信你能看懂我写的。这就是楼上几位所说的复杂的数学公式推导。
用到了极限,数列,还有数学期望,概率等知识。













Flammable_ice 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
E(1)=1 //拿到第一个白球并将它涂红的期望时间
E(2)=M/M-1 //拿到第2个白球并将它涂红的期望时间
E(3)=M/M-2 //拿到第3个白球并将它涂红的期望时间
...
E(M)=M/1 //拿到第3个白球并将它涂红的期望时间

E(total)=E(1)+E(2)+...+E(M)=M(1+1/2+1/3+...+1/M-1)=M*ln(M)

尽是数学题,编程技……
[/Quote]
这个是对的,我透露下E(x)的通项公式(包含未被化简的项):(m/(m-x))(1-(x/m)^n)-(x^n/m^n)*n
对上面的通项公式取极限n->正无穷大 得:m/(m-x),这样就得到了上面那个结论。如果想要知道这个通项公式的由来,请回复我额。O(∩_∩)O
imfam520 2012-10-10
  • 打赏
  • 举报
回复
M(1+1/2+1/3+.....+1/M)
I_ask_who 2012-10-08
  • 打赏
  • 举报
回复
改一下:
E(total)=E(1)+E(2)+...+E(M)=M(1+1/2+1/3+...+1/M)=M*(ln(M)+O(1))
I_ask_who 2012-10-08
  • 打赏
  • 举报
回复
E(1)=1 //拿到第一个白球并将它涂红的期望时间
E(2)=M/M-1 //拿到第2个白球并将它涂红的期望时间
E(3)=M/M-2 //拿到第3个白球并将它涂红的期望时间
...
E(M)=M/1 //拿到第3个白球并将它涂红的期望时间

E(total)=E(1)+E(2)+...+E(M)=M(1+1/2+1/3+...+1/M-1)=M*ln(M)

尽是数学题,编程技术就不值钱吗?
hackbuteer1 2012-10-08
  • 打赏
  • 举报
回复
概率题有些抽象啊
wutongye 2012-10-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

这道题还是有点技巧性的,需要用到数学期望的一个性质,最后用幂级数求解,推导过程有点复杂,有很多公式没法输入,这里给出结果,应该是正确答案。
如果楼主需要,我可以详细说明!
结果是:M(1+1/2+1/3+.....+1/M)
[/Quote]

期待你给一个证明啊
smsgreenlife 2012-10-08
  • 打赏
  • 举报
回复
设Xk为:在有k个白球和M-k个红球时,把一个白球涂红(变成k-1个白球M-k+1个红球)所需的时间,则有:
E(Xk)=M/k(直接用期望的定义求,结果是一个无穷项的幂级数,然后求幂级数的和);那么总的时间就是E1+E2+...+EM=M(1+1/2+1/3+...+1/M)
[Quote=引用 11 楼 的回复:]
引用 5 楼 的回复:

这道题还是有点技巧性的,需要用到数学期望的一个性质,最后用幂级数求解,推导过程有点复杂,有很多公式没法输入,这里给出结果,应该是正确答案。
如果楼主需要,我可以详细说明!
结果是:M(1+1/2+1/3+.....+1/M)


期待你给一个证明啊
[/Quote]
climber2012 2012-10-08
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

改一下:
E(total)=E(1)+E(2)+...+E(M)=M(1+1/2+1/3+...+1/M)=M*(ln(M)+O(1))
[/Quote]E(total)=E(1)+E(2)+...+E(M)=M(1+1/2+1/3+...+1/M)=M*(ln(M)+C) 其中C叫做欧拉常数并且等于0.57721566490153286060651209叫做欧拉常数
绿领巾童鞋 2012-10-08
  • 打赏
  • 举报
回复
有一个问题:高中的期望值的公式是什么,忘记了
project2502 2012-10-08
  • 打赏
  • 举报
回复
lz 你是去面试纯算法吗
project2502 2012-10-08
  • 打赏
  • 举报
回复
竟然要这么难?!。。。。。
  • 打赏
  • 举报
回复
好吧,我的数学一毕业就还给我亲爱的老师了....
加载更多回复(10)

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧