面试题[数学与概率]: 从数据流中随机选一个数
来源:互联网 发布:中国人民大学 网络教育 编辑:程序博客网 时间:2024/05/16 01:06
题目:输入一段int型数据流,输入未完成之前并不知道数据流的长度,要求在O(1)空间复杂度的前提下随机选出一个元素,并保证每一个元素被选中的概率是一样的。
我的解法如下:
假如输入的数据流依次是10、20、30、40、……
收到10时:以概率1选择10;
收到20时:以概率1/2选择10,以概率1/2选择20;
收到30时:以概率2/3选择上一次选到的元素,以概率1/3选择30;
收到40时:以概率3/4选择上一次选到的元素,以概率1/4选择40;
……
收到第N个数时:以概率(n-1)/n选择上一次选到的元素,以概率1/n选择当前元素。
1 0
- 面试题[数学与概率]: 从数据流中随机选一个数
- 面试题 从很长的数据流等概率随机采样 蓄水池抽样 Reservoir Sampling
- 【面试题】在一个含有n个元素的集合中随机取一个数
- 程序员面试题精选--从文件中随机提取一个字符串
- 随机概率相关的面试题
- 等概率随机函数面试题总结
- 等概率随机函数面试题总结
- 随机概率相关的面试题
- 《等概率随机函数 - 面试题总结》
- 面试题-随机生成数
- 从数据流中随机取m个数
- 从数据流中随机取m个数
- 从一道面试题中发现的数学规律
- 不存储数据流的前提下,从输入流中获得这 n 个等概率的随机数据
- 不存储数据流的前提下,从输入流中获得这 n 个等概率的随机数据
- 从0到n-1中随机等概率输出m个不重复的数
- 从0到n-1中随机等概率输出m个不重复的数
- 从指定的数组中,随机抽取一个数
- Java 集合框架
- SpringMVC Controller
- Cocos创建项目
- 【c语言】编写程序数一下1到100的所有整数中出现多少次数字9
- 设计模式之建造者
- 面试题[数学与概率]: 从数据流中随机选一个数
- 【C语言】一个球从100米高的自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求第10次落地时,共经过多少米,第10次反弹多高。
- 视觉领域人脸数据库汇总
- JAVA String.format 方法使用介绍
- MFC程序来龙去脉
- UVA - 1427(经典滑动队列优化dp)
- 【BC】5192 Building Blocks Ⅱ(思维题+树状数组维护)
- Android 存储
- 设计模式学习003——工厂模式(工厂方法、抽象工厂),简单工厂【也叫静态工厂】