zoukankan      html  css  js  c++  java
  • 『笔记』随机化算法

    引言:长久的关系不会是道德式的自我感动 ​​

    一、时间期望值的估计

    题目:假设(1.. n) 中每个数被选的概率相等,并且假设第 (k) 个数总是
    出现在划分后两个数组中较大的数组 ,算法的期望时间为:

    [T(n)lefrac{1}{n}(T(n-1)+T(n-2)+……+T(frac{n}{2}+1)+T(frac{n}{2})+T(frac{n}{2}+1)+……+T(n-2)+T(n-1) ]

    因为具有对称性,所以可以合并为

    [T(n)lefrac{2}{n}sum^{n-1}_{i=frac{n}{2}}T(i)+O(n) ]

    二、(n) 皇后问题的随机算法

    (k) 个 用(BoolQueen)随机放置皇后

    (n-k) 个皇后用搜索回溯的方法进行放置,增加算法的正确性

    对于不同的 (k) 值,假设 (p) 为算法成功的概率, (s) 为一次成功搜索访问的节点数的平均值,(e) 为一次不成功搜索访问的节点数的平均值,(t) 为算法找到一个解得平均时间

    [t=p imes s+(1-p) imes (e+t) ]

    [t=s+e imes frac{1-p}{p} ]

    可以发现,当全部用确定性算法的时候((k=0)) 争取性是(100)%的,但当全部用随机算法,虽然时间会减少大部分,但是正确性会大大降低,通过分析公式发现,当(k=frac{n}{2})左右时,正确性和时间都是较为理想的。

    三、主元素测试问题

    问题:

    主元素:出现次数超过一半以上的元素

    输入:(n) 个元素的数组 (T)

    输出:如果存在主元素则输出(“true”),否则(“false”)

    算法 (Majority(T,n))

    1. (i) =Random(1,n)

    2. (x) =T(i)

    3. 计数 (x)(T) 中出现的个数 (k)

    4. if (k>n/2) then return true

    5. else return false

    如果回答(true),那么 (T) 中存在主元素,算法正确,如果回答 (false),(T)仍然可能会存在主元素,算法可能会出错,回答正确概率大于(frac{1}{2})

    算法 (BoolMajority(T,n))

    1. if (Majority(T,n)) then return true

    2. else return (Majority(T,n))

    (BoolMaiority) 的算法正确概率

    [p+(1-p)p+(1-p)^2p=1-(1-p)^2>frac{3}{4} ]

    调用 (k) 次的正确概率为(1-(1-p)^k>1-2^{-k})

    四、串相等测试(随机化字符串哈希)

    问题:(A) 有一个长串 (x), (B) 有长串 (y)(A)(B) 希望知道 (x=y)?

    方法一:正常用哈希匹配,占用空间大

    方法二:传递子串进行比较,正确性不确定

    (A)(x) 导出一个短串 (f(x)) ((fingerprints))

    (A)(f(x)) 发送到 (B)

    (B) 使用同样方法导出相对于 (y) 的短串 (f(y))

    (B) 比较 (f(x))(f(y))

    如果 (f(x) eq f(y))(x eq y);

    如果 (f(x) = f(y)),则不确定.

    (Trick)

    (x)(y) 的二进制表示为正整数 (I(x)), (I(y))

    选择素数 (p), 指纹函数为

    (I_p(x) = I(x) mod p)

    (A) 传送 (p)(I_p(x))(B). 当 (p) 不太大时,传送一个短串.
    存在问题:

    (x = y o I_p(x) = I_p(y))

    (Ip(x) = Ip(y) ⇏ x = y)

    出错条件:固定

    (p | (I(x) - I(y)))

    改进版 (Trick)

    改进方法: 随机选择素数 p 进行测试

    算法 (StringEqualityTest)

    1. 随机选择小于 (M) 的素数 (p) //M为正整数

    2. (A) 发送 (p)(I_p(x))(B)

    3. (B) 测试是否 (I_p(x) = I_p(y))

    出错的必要条件:

    (x) 的位数等于 (y) 的位数

    (p | (I(x)-I(y)))

    该笔记因快速幂终结!

  • 相关阅读:
    HTML颜色表
    SQL 语法参考手册
    色环[微软MSDN]
    网页配色方案及方法[网上配色文章集合
    驰骋工作流程引擎公文流程引擎图片演示VSTO技术
    工作流程引擎手机应用方寸之间尽在掌握。
    关于流程的退回与撤消
    驰骋.net工作流程引擎设计开发讲座: 工作流程类型模式
    驰骋工作流程引擎,工作流程管理系统,工作流程中间件, 支持日历面板,采用vsto技术处理公文类的流程流转。
    驰骋.net工作流程引擎,工作流程管理系统定时启动约定
  • 原文地址:https://www.cnblogs.com/1123LXY/p/14355522.html
Copyright © 2011-2022 走看看