O(1) 的小乐

Job Hunting

公告

记录我的生活和工作。。。
<2011年1月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

统计

  • 随笔 - 182
  • 文章 - 1
  • 评论 - 41
  • 引用 - 0

留言簿(10)

随笔分类(70)

随笔档案(182)

文章档案(1)

如影随形

搜索

  •  

最新随笔

最新评论

阅读排行榜

评论排行榜

最佳约会策略(在线算法)

问题: 有n个数字,要求你在线的选择其中一个最大的,在选择第i个之前,你知道前i-1次的数字是什么,但是无法知道你将要选择的数字和以后待选的数字的大小。

 

一个很自然的策略是选定一个K,先看一下前k个的大小,不做任何选择,然后继续看,知道遇到一个比这之前的k个人还好。可以证明k= n/e 的时候,能够获得最好的选择,能够选择到最大的那个。证明其实是比较简单的。假设在我们的某次选择中,选择第i个是最优选择,那么很显然第i个必须是这n个数中最大的,那么此时的概率是1/n,第二个要求是前k个数中存在这i个数中次大的数,否则是不会选择第i个的。此时的概率是k/i-1,所以把第k个到第n个累加起来就OK了,然后取得次数的最大数,可以计算获得k=n/e。

 

很显然这个问题是一个在线算法的问题,无法预知之后的情况,边输入边进行处理。而离线算法是要求当输入完成之后,然后进行输出。 在线算法的目的就是能够达到离线算法的一样好的效果。


题目来源:

http://zhiqiang.org/blog/science/tcs-classroom-notes-the-best-dating-strategy.html
http://www.cnblogs.com/fll/archive/2008/06/01/1211569.html

posted on 2011-10-26 21:44 Sosi 阅读(585) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


统计系统