coding everyday

编程面试题 https://interview.codeplex.com

C++博客 首页 新随笔 联系 聚合 管理
  12 Posts :: 2 Stories :: 7 Comments :: 0 Trackbacks
yeah. 首先要恭喜下自己,昨天的算法蒙对了,请看@陈利人帖子。 【鼓掌】【鼓掌】:)

经典面试题:蓄水池抽样

要求从N个元素中随机的抽取k个元素,其中N无法确定。

这种应用的场景一般是数据流的情况下,由于数据只能被读取一次,而且数据量很大,并不能全部保存,因此数据量N是无法在抽样开始时确定的;但又要保持随机性,于是有了这个问题。所以搜索网站有时候会问这样的问题。

这里的核心问题就是“随机”,怎么才能是随机的抽取元素呢?我们设想,买彩票的时候,由于所有彩票的中奖概率都是一样的,所以我们才是“随机的”买彩票。那么要使抽取数据也随机,必须使每一个数据被抽样出来的概率都一样。


哎呀妈呀,这题目一天比一天难啊。目测搞不定啊。

在班车上简单分析了下,N的值要到最后才知道,从N个里面抽k个元素,要是概率知识没有都还给老师的话,每个元素被抽中的概率是CNk,对不?唔,既然在N知道之前,就要一样概率的抽取k个元素,那我能不能猜想最后的算法其实是跟N无关的呢?不管怎么样先挖个坑再说,目测这个坑不一定能填上。:D

posted on 2013-07-03 09:29 everyday 阅读(756) 评论(1)  编辑 收藏 引用 所属分类: Algorithm

Feedback

# re: 蓄水池抽样 2013-07-12 14:31 everyday
果然挖了个坑,填不上了。。  回复  更多评论
  


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