文章目录

  • 1.1 生日悖论
  • 1.2快速排序
  • 1.3字符串比较
    • suiji算法
    • 总结
  • 1.4 随机算法
    • 证明
    • 因为
    • end
    • 总结啊哈哈哈哈哈哈
  • 1.5 定理
    • 定理1.1Markov不等式
    • 定理1.2Chebyshev不等式
  • 1.6 抽样
    • 上面是基础知识哦
    • $下面看看p和\hat p的误差$
    • 结论1
    • 结论1

1.1 生日悖论

一年nnn天,kkk个人中至少有两个人生日为同一天为AknA_k^nAkn​,反例为BknB_k^nBkn​,则
Pr(Bnk)=nnn−1n...n−k+1nPr(B_n^k)=\frac{n}{n}\frac{n-1}{n}...\frac{n-k+1}{n}Pr(Bnk​)=nn​nn−1​...nn−k+1​
=∏i=1kn−i+1n=\prod_{i=1}^{k}\frac{n-i+1}{n}=i=1∏k​nn−i+1​
Pr(Ank)=1−∏i=1kn−i+1nPr(A_n^k)=1-\prod_{i=1}^{k}\frac{n-i+1}{n}Pr(Ank​)=1−i=1∏k​nn−i+1​

\

根据
1+x≤ex1+x \le e^x1+x≤ex
得到
1−i−1n≤e−i−1n1-\frac{i-1}{n} \le e^{-\frac{i-1}{n}}1−ni−1​≤e−ni−1​

所以
Pr(Bnk)≤∑i=1ke−i−1n=e−k(k−1)2nPr(B_n^k) \le \sum_{i=1}^{k}e^{-\frac{i-1}{n}}=e^{\frac{-k(k-1)}{2n}}Pr(Bnk​)≤i=1∑k​e−ni−1​=e2n−k(k−1)​

当k(k−1)2n>ln2\frac{k(k-1)}{2n}>ln22nk(k−1)​>ln2,即(k≥2nln2)(k \ge \sqrt{2nln2})(k≥2nln2​),Pr(B_n^k)<0.5

当n=365,k≥23n=365,k \ge 23n=365,k≥23,时候就有Pr(Ank)>0.5Pr(A_n^{k})>0.5Pr(Ank​)>0.5,

k≥100k \ge 100k≥100,时候就有Pr(Ank)>0.999999Pr(A_n^{k})>0.999999Pr(Ank​)>0.999999,

1.2快速排序

这个算法分治的时候选取固定的位置分开成两部分。
平均复杂度O(nlogn)O(nlogn)O(nlogn),最坏还是O(n2)O(n^2)O(n2)

若每次均匀随机将它分成两部分,则期望时间复杂度O(nlogn)O(nlogn)O(nlogn)

1.3字符串比较

x1x2x3...xnx_1x_2x_3...x_nx1​x2​x3​...xn​,y1y2y3...yny_1y_2y_3...y_ny1​y2​y3​...yn​是否同?

最直接是将每一位发来比较,是O(n)O(n)O(n)。可证确定性算法的通信复杂度就是Ω(n)\Omega(n)Ω(n)。

suiji算法

取2n<p<4n2n<p<4n2n<p<4n的素数ppp,运算在ZpZ_pZp​下进行

考多项式f(z)=∑ixizif(z)=\sum_ix_iz^if(z)=i∑​xi​zi
g(z)=∑iyizig(z)=\sum_iy_iz^ig(z)=i∑​yi​zi

转化为f(z)恒等于g(z)么?f(z)恒等于g(z)么?f(z)恒等于g(z)么?

若串相等,则任意z0⇒f(z0)=g(z0)z_0\Rightarrow f(z_0)=g(z_0)z0​⇒f(z0​)=g(z0​)

若串不相等,f(z0)≠g(z0)⇒高概率f(z)≠g(z)f(z_0) \neq g(z_0)\Rightarrow 高概率f(z) \neq g(z)f(z0​)​=g(z0​)⇒高概率f(z)​=g(z)

(算一下当串不等的时候,f(z0)≠g(z0)的概率f(z_0) \neq g(z_0)的概率f(z0​)​=g(z0​)的概率)

Pr(f(z0)≠g(z0)∣串不等)=啥呢Pr(f(z_0) \neq g(z_0)|串不等)=啥呢Pr(f(z0​)​=g(z0​)∣串不等)=啥呢

f(z)−g(z)至多n个不同根f(z)-g(z)至多n个不同根f(z)−g(z)至多n个不同根,均匀选取z0∈Zpz_0\in Z_pz0​∈Zp​,有
Pr(f(z0)≠g(z0)∣串不等)=p−np>12Pr(f(z_0) \neq g(z_0)|串不等)=\frac{p-n}{p}>\frac{1}{2}Pr(f(z0​)​=g(z0​)∣串不等)=pp−n​>21​

所以算法为:
随机选取z0∈Zpz_0\in Z_pz0​∈Zp​,发送(f(z0),z0)(f(z_0),z_0)(f(z0​),z0​)过去

对方计算g(z0)g(z_0)g(z0​)并和f(z0)f(z_0)f(z0​)比较

\

总结

一次通信传输小于ppp 的非负整数,约为O(logn)O(logn)O(logn)比特信息。

重复kkk次的正确率至少为1−(12)k1-(\frac{1}{2})^{k}1−(21​)k,复杂度O(klogn)O(klog n)O(klogn)

类似有一个检验矩阵 AB=C吗AB = C吗AB=C吗的随机算法。

A,B,C∈Zn×nA,B,C \in Z^{n \times n}A,B,C∈Zn×n
AB=C?????AB=C?????AB=C?????

确定性算法复杂度O(nw)O(n^w)O(nw),2≤w<2.3732 \le w <2.3732≤w<2.373

1.4 随机算法

m=max⁡1≤i,j≤n{∣aij∣,∣bij∣,∣cij∣}m= \max_{ 1 \le i,j \le n}\{|a_{ij}|,|b_{ij}|,|c_{ij}|\}m=1≤i,j≤nmax​{∣aij​∣,∣bij​∣,∣cij​∣}
取素数nm2<p<2nm2nm^2<p<2nm^2nm2<p<2nm2

均匀随机取x⃗∈Zpn\vec x \in Z_p^nx∈Zpn​

计算ABx⃗−Cx⃗AB \vec x-C \vec xABx−Cx

按照1.3,我么这样写(先结论哦)

  • 若AB=CAB=CAB=C,

    • 则任意x⃗⇒ABx⃗−Cx⃗=0任意\vec x \Rightarrow AB \vec x-C \vec x=0任意x⇒ABx−Cx=0
  • 若AB≠CAB\neq CAB​=C,

    • ABx⃗−Cx⃗≠0⇒高概率AB≠CAB \vec x-C \vec x\neq 0 \Rightarrow高概率 AB\neq CABx−Cx​=0⇒高概率AB​=C

证明

还是要计算Pr(ABx⃗−Cx⃗=0∣AB≠C)还是要计算Pr(AB \vec x-C \vec x=0|AB\neq C)还是要计算Pr(ABx−Cx=0∣AB​=C)
这个就要小于一个数字了比较好。

=Pr(Dx⃗=0∣D≠0)=Pr(D\vec x= 0|D\neq 0)=Pr(Dx=0∣D​=0)

≤Pr(y⃗Tx⃗=0∣y⃗≠0)\le Pr(\vec y^{T}\vec x=0|\vec y\neq 0)≤Pr(y​Tx=0∣y​​=0)

为啥要取素数
nm2<p<2nm2nm^2<p<2nm^2nm2<p<2nm2

因为

D=ABD=ABD=AB的元素就属于ZpZ_pZp​了,

所以y⃗=0就意味着y⃗必须全部是零,而不会含有p,2p等等的啦\vec y=0就意味 着 \vec y必须全部是零,而不会含有p,2p等等的啦y​=0就意味着y​必须全部是零,而不会含有p,2p等等的啦

end

≤Pr(y⃗Tx⃗=0∣y⃗≠0)\le Pr(\vec y^{T}\vec x=0|\vec y\neq 0)≤Pr(y​Tx=0∣y​​=0)

不妨设y⃗的第n个分量≠0,则必∈Zp\{0}\vec{y}的第n个分量\neq0,则必\in Z_p\backslash\{0\}y​的第n个分量​=0,则必∈Zp​\{0}。

那么你随便给我一个x⃗\vec xx,如果x⃗\vec xx的前面n−1n-1n−1个分量都确定了,。。

那么为了让y⃗Tx⃗=0\vec y^{T}\vec x=0y​Tx=0,x⃗\vec xx的第nnn个分量必须定下来,相当于解一个一元一次方程,有且仅有1解所以

Pr(y⃗Tx⃗=0∣y⃗≠0)=1pPr(\vec y^{T}\vec x=0|\vec y\neq 0)= \frac{1}{p}Pr(y​Tx=0∣y​​=0)=p1​

总结啊哈哈哈哈哈哈

每次就是O(n2)O(n^2)O(n2),重复kkk次,正确率至少1−1pk1-\frac{1}{p^k}1−pk1​,O(kn2)O(kn^2)O(kn2)

\

1.5 定理

定理1.1Markov不等式

X≥0X\ge 0X≥0,给个数c>0给个数c>0给个数c>0
则Pr(X≥c)≤E(X)cPr(X \ge c)\le \frac{E(X)}{c}Pr(X≥c)≤cE(X)​
证明:
Pr(X≥c)=∫c+∞p(x)dxPr(X \ge c)=\int_c^{+\infty}p(x)dxPr(X≥c)=∫c+∞​p(x)dx
≤1c∫c+∞xp(x)dx\le\frac{1}{c}\int_c^{+\infty}xp(x)dx≤c1​∫c+∞​xp(x)dx

≤1c∫0+∞xp(x)dx=E(X)c\le \frac{1}{c}\int_0^{+\infty}xp(x)dx = \frac{E(X)}{c}≤c1​∫0+∞​xp(x)dx=cE(X)​

定理1.2Chebyshev不等式

X≥0X\ge 0X≥0,给个数c>0给个数c>0给个数c>0
则Pr(∣X−E(x)∣≥c)≤var(X)c2Pr(|X-E(x)| \ge c)\le \frac{var(X)}{c^2}Pr(∣X−E(x)∣≥c)≤c2var(X)​

证明:
想一下咋用1.1来证明他呢??考虑到var(X)var(X)var(X)里面有平方!

上面变为Pr((X−E(X))2≥c2)Pr((X-E(X))^2\ge c^2 )Pr((X−E(X))2≥c2)
≤E((X−E(X))2)c2\le \frac{E((X-E(X))^2)}{c^2}≤c2E((X−E(X))2)​
简单吧!

1.6 抽样

U中独立均匀采样,目标集合T,∣U∣,∣T∣不知道U中独立均匀采样,目标集合T,|U|,|T|不知道U中独立均匀采样,目标集合T,∣U∣,∣T∣不知道
概率p=∣T∣∣U∣概率p=\frac{|T|}{|U|}概率p=∣U∣∣T∣​

采样值0或1

得到独立同分布X1,X2,X3....Xn,X_1,X_2,X_3....X_n,X1​,X2​,X3​....Xn​,
Pr(Xi=1)=p,Pr(Xi=0)=1−pPr(X_i=1)=p,Pr(X_i=0)=1-pPr(Xi​=1)=p,Pr(Xi​=0)=1−p。

令估计值p^=∑inXin令估计值\hat p=\frac{\sum_i^{n}X_i}{n}令估计值p^​=n∑in​Xi​​
那么E(p^)=p那么E(\hat p)=p那么E(p^​)=p
var(p^)=p−p2nvar(\hat p)=\frac{p-p^2}{n}var(p^​)=np−p2​

上面是基础知识哦

下面看看p和p^的误差下面看看p和\hat p的误差下面看看p和p^​的误差

计算Pr(∣p^−p∣≤120)=计算Pr(|\hat p-p|\le \frac{1}{20}) =计算Pr(∣p^​−p∣≤201​)=
Pr(∣p^−E(p^)∣≤120)=Pr(|\hat p-E(\hat p)|\le \frac{1}{20}) =Pr(∣p^​−E(p^​)∣≤201​)=
为了使用切比雪肤为了使用切比雪肤为了使用切比雪肤
1−Pr(∣p^−E(p^)∣≥120)1-Pr(|\hat p-E(\hat p)|\ge \frac{1}{20})1−Pr(∣p^​−E(p^​)∣≥201​)
≥1−400var(p^)=1−400p(1−p)n\ge 1-400var(\hat p)=1-\frac{400p(1-p)}{n}≥1−400var(p^​)=1−n400p(1−p)​
>1−100n>1-\frac{100}{n}>1−n100​
为了让上面很大,让n很大就好啦为了让上面很大,让n很大就好啦为了让上面很大,让n很大就好啦

结论1

当n=1000时,上面≥90%当n=1000时,上面\ge 90\%当n=1000时,上面≥90%

当n=2000时,上面大于95%当n=2000时,上面大于95\%当n=2000时,上面大于95%

表明n=2000时,p∈(p^−5%,p^+5%)的置信度95%表明n=2000时,p \in (\hat p-5\%,\hat p+5\%)的置信度95\%表明n=2000时,p∈(p^​−5%,p^​+5%)的置信度95%

结论1

绝对误差,如果p较大,用切比雪肤分析够了

p较小,需要其他技术分析相对误差

\
\

1.1 生日悖论+1.2快速排序+1.3字符串比较+1.4 随机算法+1.5 定理+1.6 抽样相关推荐

  1. 怎么解决哈希冲突_从生日悖论谈哈希碰撞

    1 前言 前几天和一个大佬交流了几个问题,其中一个关于ID生成的问题推展到了哈希冲突和一个与之相关的一个数学趣题生日悖论. 当时对于两个事情的理解不够深刻,周末花时间仔细研究了一下,发现很有趣,于是觉 ...

  2. PTA14、生日悖论 (10 分)

    14.生日悖论 (10 分) 生日悖论,指如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%.尝试编程验证. 验证方法提示:使用从1到365的整数代表生日.测试n次, ...

  3. python语言进行生日悖论分析--随机试验方法

    问题:生日悖论指如果一个房间里有23人或以上,那么至少两个人生日相同的概率大于50%.编写程序,输出在不同随机样本数量下,23个人中至少两个人生日相同的概率. (1)生成23个[1,365]之间的随机 ...

  4. 生日悖论分析python_Python关于生日悖论分析

    生日悖论指如果一个房间里有23人或以上,那么至少有两个人生日相同的概率大于50%.编写程序,输出在10000例随机样本数量下,n个人中至少两个人生日相同的概率.(n从10到50,不考虑闰年) 代码: ...

  5. 生日悖论 python程序

    import random n = 23 sum=0 for i in range(1000):list=[]for _ in range(n):k=random.choice(range(365)) ...

  6. 生日悖论与Hash函数的攻击

    生日悖论与Hash函数的攻击 生日悖论问题 什么是生日悖论问题 生日悖论问题求解 Hash函数的攻击 两个集合相交问题 Hash函数的攻击方法 Yuval攻击 生日悖论问题 什么是生日悖论问题 假定每 ...

  7. Birthday Paradox(生日悖论)(概率)

    Birthday Paradox(生日悖论)(概率) judge:LightOJ - 1104 vjudge:vjudge Time limit:2000 ms Memory limit:32768 ...

  8. python实现生日悖论分析

    问题:生日悖论分析.生日悖论指如果一个房间里有23人或以上,那么至少有两个人生日相同的概率大于50%.编写程序,输出在不同随机样本数量下,23个人中至少有两个人生日相同的概率. import rand ...

  9. python 生日悖论概率计算。

    生日悖论指如果一个房间里有23 或以上人,那么至少有两个人生日相同的 概率大于50%.编写程序,输出在不同随机样本数量下,23 个人中至少两个人生日相同的概率. from random import ...

最新文章

  1. Android开发--详解SAX解析XML文件
  2. H.264中的量化过程
  3. [Bzoj4196] [NOI2015] 软件包管理器 [树链剖分,线段树]
  4. Scala教程之:Option-Some-None
  5. Sybase资料下载(参考手册,功能讲解很全)
  6. python函数调用外部变量_Python基础
  7. HDOJ 1896 Stones 解题报告
  8. 企业信息安全建设要点梳理
  9. php mvc vue 调用js函数_js 匿名函数自调用
  10. WIN10网络共享文件夹实战
  11. WebAPI HelpPage出现Failed to generate the sample for media type 'application/x-www-form-urlencoded'. 错
  12. 服务器多开虚拟机怎么使用教程,游戏多开,你需要这个虚拟机教程
  13. Vmware 可用的激活码
  14. 【推荐】智慧数字城管执法综合应用平台可视化系统建设架构解决方案合集(共202份,920M)
  15. 互联网内卷化下,“大或死”之外的另一路径是什么?
  16. Unreal 和 Unity 3D 各有什么特点?如何选择?
  17. DDR的VTT有源端接和无源端接(slua886a笔记)
  18. win10改win7 bios设置方法
  19. 华为鸿蒙系统的技术特性,华为鸿蒙系统来了,还有这四大技术特性
  20. python快递费用计算_Python实现快递查询

热门文章

  1. 力扣春季编程大赛(LCCUP‘21)
  2. JavaFX专业开发者与业余开发者之间就差一个一个Icon packs
  3. LTE(4G) - NR(5G) NSA Transfer (RRC UL Information transfer)
  4. 录屏软件哪个好?试试这6款录屏软件,小编亲测(2023已更新)
  5. 【路径规划】基于蝙蝠算法的无人机三维路径规划matlab源码
  6. 【原创】基于JavaWeb的社区疫情防控管理系统(疫情防控管理系统毕业设计)
  7. 安卓课本练习4-4和4-5
  8. 蓝桥杯官网python组基础练习-基础1-5
  9. android坦克大战源代码,android的坦克大战 - 源码下载|源代码 - 源码中国
  10. python转换图片透明背景为白色