zoukankan      html  css  js  c++  java
  • 一个文件含有n个元素,只能遍历一遍要求等概率取出其中之一。

    解答:

         抽签,5个人抽取5根签,只有一个签为中签。每个人概率为1/5. 

    将这n个元素依次遍历,每次得到的数(第L个)取随机数r,r%L==0(0-L之内)

    var pickOne(file){

      int lenth = 1;

      while(lenth <= file.size){

        if(random()%lenth == 0){

          pick = file[lenth];

        }

        lenth++;

      }

    return pick;

    }

    1,2,3,4,5,6,7

    第一个数:pick = 1 概率100%;

    第二个数:pick被替换为第二个数的概率为1/2,前面的数选到概率为1/2

    第三个数:pick被替换为第三个数的概率为1/3,前面的数选到概率为1/2*(1-1/3)

    第四个数:pick被替换为第四个数的概率为1/4,之前概率为1/3*(1-1/4)

    第n个数:pick被替换为第n个数的概率为1/n

  • 相关阅读:
    bugku 求getshell
    HTTP之content-type
    web之robots.txt
    HTTP之User-Agent大全
    bugku 细心
    PHP输入流
    bugku web8
    PHP中sha1()函数和md5()函数的绕过
    bugku 各种·绕过
    【学术篇】烧水问题 打表找规律做法
  • 原文地址:https://www.cnblogs.com/pandans/p/5002031.html
Copyright © 2011-2022 走看看