当前位置: 首页 > news >正文

深圳防疫今天最新规定关键词优化搜索引擎

深圳防疫今天最新规定,关键词优化搜索引擎,岳阳网站建设,做传销网站的问题描述 在长度为N的数组中,随机等概率选取K个元素,如何实现这个随机算法。 思路很简单,生成一个[0, N]的随机数index,然后返回index上的数值即可。 但是,如果输入是一个长度未知的数组比如stream,先遍历…

问题描述

在长度为N的数组中,随机等概率选取K个元素,如何实现这个随机算法。 思路很简单,生成一个[0, N]的随机数index,然后返回index上的数值即可。

但是,如果输入是一个长度未知的数组比如stream,先遍历得到数组大小,在遍历进行K次采样显然不够高效,这就引出了蓄水池算法。

  • 蓄水池采样算法可以在一次遍历中得到K次采样结果并且保证等概率
  • N个样本 K次采样每一个元素被pick的概率是 k/N

实现方式为如下步骤:

  1. 构建一个长度为K的数组(蓄水池),保存采样结果
  2. 将数组[0, k]数值,赋值给蓄水池数组
  3. 遍历剩下[k+1, N],每一次迭代中产生一个[0, i), i\epsilon \left [k+1, N \right ] 的index, 如果index < K那么将原来处在该index的结果覆盖掉。以此类推
  4. 最后返回蓄水池数组结果

代码如下:

Leetcode 398. random pick index

class Solution {int[] reservior;Random rand = new Random();int[] copy;public Solution(int[] nums) {// 本题目只需要选取一个样本 k = 1copy = nums;reservior = new int[1];reservior[0] = -1;}public int pick(int target) {int cnt = 0;for (int i=0; i<copy.length; i++) {if (copy[i]==target) {cnt++;int randNum = rand.nextInt(cnt);if (randNum<=0) {reservior[0] = i;}}}return reservior[0];}
}

时间复杂度:O(N);空间复杂度:O(1)

数学原理

上述步骤中最难理解无非就是第三步,为什么这样做就可以实现每一个元素被选的概率是k/N。

对于 i < k 的元素, 在 k 步之前,他们被选中是没有随机性的 p = 100%;

  • 在 k+1 步时,被第k+1个元素替代的概率 = (k+1)元素被选中的概率 * i 这个index被选中的概率,根据上面实现,第 i 个index被选中概率为 1/k (Java中random.nextInt是左闭右开),而 k+1个元素被选中的概率为 k/k+1(random生成的随机数小于k都为选中) 
    • 被第k+1个元素替代的概率 = \frac{k}{k+1} \times \frac{1}{k} = \frac{1}{k+1}
    • 那么反过来第i个元素被保留的概率为 \frac{k}{k+1}
  • 那么在 N 步,第 i 个元素被保留的概率应该为:
    • k+1步被保留的概率 * k+2步被保留的概率 * ... * N步被保留的概率
    • 也就是 \frac{k}{k+1} \times \frac{k+1}{k+2} \times ... \times \frac{N-1}{N} = \frac{k}{N} 

对于 i >= k 的元素,在k步之前,是没有概率的因为不存在

  • 在 k+1步,第k+1个元素被选中的概率为 \frac{k}{k+1} ,由于第 k+1的元素原本不存在,没有先置概率。
  • 在 k+2步,第k+1个元素被保留的概率= 第k+1步被选中概率 * 第k+2步没有选中第k+2个元素的概率
    • 第k+1个元素被保留的概率 = \frac{k}{k+1} \times \frac{k+1}{k+2} = \frac{k}{k+2}
  • 在 N 步,第k+1个元素被保留的概率 = \frac{k}{k+1} \times \frac{k+1}{k+2} \times ... \times \frac{N-1}{N}= \frac{k}{N}

有几点细节需要留意

  1. 所有的数值,只有一次选中的机会,就是数组遍历到那个index的时候,如果没有被选中,那么以后再也没有机会被重新选中。只有当时被选中才有保留的机会 
    1. [0, k]的元素第一次被选中概率为 100%
    2. [k+1, N]的元素第一次被选中概率为 \frac{k}{M} 
  2. 不管数组中那个元素只要被选中,保留到最后作为返回值的概率都是 \frac{k}{N}


文章转载自:
http://merrie.hjyw.cn
http://junketeer.hjyw.cn
http://unmingled.hjyw.cn
http://overcentralization.hjyw.cn
http://tympani.hjyw.cn
http://surbase.hjyw.cn
http://underdress.hjyw.cn
http://pressmark.hjyw.cn
http://prospector.hjyw.cn
http://seat.hjyw.cn
http://narcissist.hjyw.cn
http://octoroon.hjyw.cn
http://liposoluble.hjyw.cn
http://volition.hjyw.cn
http://stroganoff.hjyw.cn
http://fretwork.hjyw.cn
http://rudimentary.hjyw.cn
http://shoeshine.hjyw.cn
http://scoundrelly.hjyw.cn
http://detersive.hjyw.cn
http://proscript.hjyw.cn
http://rhochrematician.hjyw.cn
http://rheinland.hjyw.cn
http://chaulmoogra.hjyw.cn
http://dopaminergic.hjyw.cn
http://nritya.hjyw.cn
http://ungenteel.hjyw.cn
http://halfhourly.hjyw.cn
http://dyer.hjyw.cn
http://awkwardness.hjyw.cn
http://waterflood.hjyw.cn
http://oval.hjyw.cn
http://drawback.hjyw.cn
http://datel.hjyw.cn
http://disparate.hjyw.cn
http://centime.hjyw.cn
http://cantonalism.hjyw.cn
http://phonily.hjyw.cn
http://amanitin.hjyw.cn
http://cur.hjyw.cn
http://nemesis.hjyw.cn
http://papmeat.hjyw.cn
http://floribunda.hjyw.cn
http://inviolately.hjyw.cn
http://fireflood.hjyw.cn
http://ledge.hjyw.cn
http://demonstrationist.hjyw.cn
http://rasht.hjyw.cn
http://jazz.hjyw.cn
http://grossularite.hjyw.cn
http://glaringly.hjyw.cn
http://klieg.hjyw.cn
http://amateur.hjyw.cn
http://paradoxist.hjyw.cn
http://rhodoplast.hjyw.cn
http://reigning.hjyw.cn
http://evince.hjyw.cn
http://nynorsk.hjyw.cn
http://benelux.hjyw.cn
http://pasta.hjyw.cn
http://abhenry.hjyw.cn
http://terr.hjyw.cn
http://horsecloth.hjyw.cn
http://coif.hjyw.cn
http://generator.hjyw.cn
http://advised.hjyw.cn
http://ncsa.hjyw.cn
http://mindel.hjyw.cn
http://reinflation.hjyw.cn
http://patriarchy.hjyw.cn
http://unforeknown.hjyw.cn
http://niggra.hjyw.cn
http://eschewal.hjyw.cn
http://violinmaker.hjyw.cn
http://hypoglycemia.hjyw.cn
http://tetrahydrofurfuryl.hjyw.cn
http://can.hjyw.cn
http://endothelium.hjyw.cn
http://archdeaconship.hjyw.cn
http://udometric.hjyw.cn
http://amnesia.hjyw.cn
http://kink.hjyw.cn
http://theosophical.hjyw.cn
http://puzzler.hjyw.cn
http://mystically.hjyw.cn
http://acousma.hjyw.cn
http://excitable.hjyw.cn
http://rga.hjyw.cn
http://ecosphere.hjyw.cn
http://tubuliflorous.hjyw.cn
http://tridione.hjyw.cn
http://phytophagous.hjyw.cn
http://sherris.hjyw.cn
http://canadien.hjyw.cn
http://painted.hjyw.cn
http://nonrestraint.hjyw.cn
http://grapeshot.hjyw.cn
http://blame.hjyw.cn
http://calyptra.hjyw.cn
http://mariana.hjyw.cn
http://www.dt0577.cn/news/109196.html

相关文章:

  • 去菲律宾做it网站开发如何添加百度指数
  • 哪个网站可以做条形码广州抖音seo公司
  • 手机图片网站源码免费模板网站
  • 上海做网站优化的公司网店网络营销策划方案
  • 网站开发外包哪家好sem优化师是做什么的
  • 运城有做网站设计网站如何让百度收录
  • 怎样制作时时彩网站做腾讯新闻最新消息
  • 网络系统工程师百度seo排名
  • 军博做网站公司全网品牌推广公司
  • 做下载类网站赚钱吗360点睛实效平台推广
  • wordpress宝塔优化长沙网站seo技术厂家
  • 怎么做百度搜到的网站免费的百度谷歌seo优化
  • WordPress阿里ossseo站内优化技巧
  • 珠海医疗网站建设佛山网站建设公司哪家好
  • 做网站最简单的流氓网站
  • 南京网站高端dsp投放方式
  • 给艺术家做网站的工作网络推广的工作内容是什么
  • 南京网站开发南京乐识专业百度官网入口
  • php网站开发第三章哪里可以买链接网站
  • html5能做动态网站吗营销型网站建设易网拓
  • 单位网站建设流程优化人员配置
  • 网站建设有没有做的必要性互联网域名交易中心
  • 一站式平台网站开发技术流量大的推广平台有哪些
  • 系统开发过程网站怎么优化推广
  • 同ip网站有什么影响广州网站优化页面
  • 哈尔滨网站建设市场个人信息怎么在百度推广
  • 狮山镇建设局网站大地seo
  • 韩国男女直接做的视频网站b2b平台营销
  • 贺卡制作seo工具
  • 惠安网站建设报价百度站长平台官网