标签:加权 概率 中等 内存空间 无限 随机数 100 数据
从无限流中等概率取100个数据。
一、方法一:分配随机数
开辟一个存储100个数据的内存空间,当无限流中的一个数据a到来就为它分配一个随机数,若内存空间未满就存入,若空间已满但是数据a的随机数大于空间中随机数最小的数据,就把随机数最低的一个删除。依次类推,这样就保证到最后一个数据n为止,所有的数据被选中的概率都是100/n。
二、方法二:蓄水池法
开辟一个存储100个数据的内存空间,当无限流中第n个数据a到来时,若内存空间未满就存入,若空间已满就给a一个0-1随机数k,若k < 100/n 就随机从100个数据中删除一个并将a存入。这个可以使用数学归纳法来证明,假设在n - 1个数据到来时,池中的数据保留的概率为100/(n-1),那么当第n个数据到来时,池中数据保留的概率为100/(n-1) * (1-1/n) = 100/n,当n = 102时成立,证毕。
三、方法三:加权取样
ui是0-1的随机数,wi是权重。
四、方法四:分布式处理
记录每台机器处理的数据量,那么该台机器的每个数据的权重ki乘以数据量就是它的新权重,之后对每台机器进行加权取样。
标签:加权,概率,中等,内存空间,无限,随机数,100,数据 来源: https://blog.csdn.net/weixin_45841729/article/details/121458674
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。