今天百度的一道笔试题
时间:2011-10-16
来源:互联网
由于存储空间有限,每天只能存储m个请求,每天的请求数量远大于m,请求数量不到最后时刻不会知道。
求一算法实现随机存储m个请求,每个请求被存储的概率都一样
求一算法实现随机存储m个请求,每个请求被存储的概率都一样
作者: peeky01 发布时间: 2011-10-16
先存储m个,
当第N(N>m)个请求来时,m/N概率存储该请求,随机替换m个存储好的请求中的一个.
当第N(N>m)个请求来时,m/N概率存储该请求,随机替换m个存储好的请求中的一个.
作者: oo 发布时间: 2011-10-16
感觉不行哇,反例:前N-1个总有被替换的概率,而最后一个木有被替换的概率
引用 1 楼 oo 的回复:
先存储m个,
当第N(N>m)个请求来时,m/N概率存储该请求,随机替换m个存储好的请求中的一个.
先存储m个,
当第N(N>m)个请求来时,m/N概率存储该请求,随机替换m个存储好的请求中的一个.
作者: peeky01 发布时间: 2011-10-16
引用 2 楼 peeky01 的回复:
感觉不行哇,反例:前N-1个总有被替换的概率,而最后一个木有被替换的概率
引用 1 楼 oo 的回复:
先存储m个,
当第N(N>m)个请求来时,m/N概率存储该请求,随机替换m个存储好的请求中的一个.
感觉不行哇,反例:前N-1个总有被替换的概率,而最后一个木有被替换的概率
引用 1 楼 oo 的回复:
先存储m个,
当第N(N>m)个请求来时,m/N概率存储该请求,随机替换m个存储好的请求中的一个.
1楼的没有问题啊,因为每一个数被选中的概率都是m/N
作者: sbwwkmyd 发布时间: 2011-10-16
我今天也参加了百度的笔试题目,我的思路是这样的。。
如果用户查询的数量小于m,那么直接就存起来。如果用户查询的数量大于m,假设为m+i,那么在1-----m+i之间随机产生一个数,如果选择的是前面m条查询进行存取,那么概率为m/(m+i),如果选择的是后面i条记录中的查询,那么用这个记录来替换前面m条查询记录的概率为m/(m+i)*(1-1/m)=(m-1)/(m+i),当查询记录量很大的时候,m/(m+i)== (m-1)/(m+i),所以每个query被抽中的概率是相等的。
如果用户查询的数量小于m,那么直接就存起来。如果用户查询的数量大于m,假设为m+i,那么在1-----m+i之间随机产生一个数,如果选择的是前面m条查询进行存取,那么概率为m/(m+i),如果选择的是后面i条记录中的查询,那么用这个记录来替换前面m条查询记录的概率为m/(m+i)*(1-1/m)=(m-1)/(m+i),当查询记录量很大的时候,m/(m+i)== (m-1)/(m+i),所以每个query被抽中的概率是相等的。
作者: Hackbuteer1 发布时间: 2011-10-16
mark
作者: lz3771 发布时间: 2011-10-16
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28