zoukankan      html  css  js  c++  java
  • 算法导论: 第5章

    5.1-2 生成Random(a,b)

        运行b-a次Random(0,1),累加和,最后再加a。利用公式F(z) = w解出z即可,其中F(z)为目标分布,w为区间0-1内的均匀分布。

    5.1-3 等概率生成0和1

       Biased-Random 以概率p输出1,以概率1-p输出0,

      则1-Biased-Random 以概率p输出0,以概率1-p输出1

      则调用Biased-Random后接着调用1-Biased-Random,出现的概率为

       调用结果    00      01      10    11

       出现概率    (1-p)*p    (1-p)*(1-p)     p*p    p*(1-p)

    则1出现的期望E[1] = (1-p)*(1-p) + p*p + 2*p*(1-p) = 1;

      0出现的期望E[0] = 2(1-p)*p + (1-p)*(1-p) + p*p = 1;

    故调用一次(Biased-Random) + (1-Biased-Random)就可以让0和1出现的概率相等。连续调用这个组合,统计0和1出现的个数,直到它们出现的个数不相等。此时输出出现次数多的那个。每次调用产生0和1个个数相等的概率为1-2*p*(1-p)。伯努利实验期望为O(1/(1-2*p*(1-p)))

    网上还有另外一种解法:运行Biased-Random两次产生x和y,连续运行直到两个数不等,然后输出x。显然,产生0的概率为(1-p)*p,产生1的概率为p*(1-p),二者产生概率相等。每次产生两个不等的数,说明实验成功,故是一个2*p*(1-p)概率的伯努利实验,期望为O(1/2*p*(1-p))。

    但由于2*p*(1-p)<1/2,所以后者的期望大,故后者用的次数更少。

    5.3-5 Random(1,n^3)所有元素都唯一的概率至少为1-1/n

    参见http://photo.blog.sina.com.cn/list/blogpic.php?pid=932e6e55hc37388f5a11d&bid=932e6e5501015a80&uid=2469293653

    5.1 概率计数

    (a)令Vn表示n次自增操作后的值,令Xi表示i次自增操作后自增后和自增前数值的差,则有Vn = X1 + X2 + ... + Xn。

    而E[Xi] = 0*(1-1/(n(i+1)-n(i))) + (n(i+1)-n(i))*(1/(n(i+1)-n(i))) = 1。得E[Vn] = n。

    (b)n(i) = 100i,则n(i+1)-n(i) = 100;概率为1/100 。

    则Var[Xi] = E[Xi^2] - E[Xi]^2 = (0^2*99/100) + (100^2) *1/100 - 1^2 = 99。

    故Var[Vn] = 99n;

  • 相关阅读:
    9.5 dubbo事件通知机制
    9.4 dubbo异步调用原理
    13.1 dubbo服务降级源码解析
    第十八章 dubbo-monitor计数监控
    12.4 客户端响应解码
    12.3 服务端响应编码
    12.2 服务端请求解码
    12.1 客户端请求编码
    git生成并添加SSH key
    Java并发之原子操作类汇总
  • 原文地址:https://www.cnblogs.com/rolling-stone/p/3634303.html
Copyright © 2011-2022 走看看