- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
作业_huam
算法设计——概率算法作业
姓名:胡嘉瑜 学号:S概率算法
二.源代码——概率算法
三.近似算法
一. 概率算法
Ex1. 若将y ← uniform(0, 1) 改为 y ← x, 则上述的算法估计的值是什么?
答:k/n表示飞镖进入某一个区域内的概率,返回的值为4k/n。
因为:x ← uniform(0, 1),y ← x,在x和y满足x2 + y2 ≤ 1时k++
所以:当x= √2/2时k++。
k/n表示在总的n次中k自加的概率,这个概率就等价为x= √2/2的概率。而x在[0,1]之间 → x= √2/2的概率就为√2/2,即k/n=√2/2。
所以:此时返回值4k/n=2√2。
Ex2. 在机器上用 估计π值,给出不同的n值及精度。
原理:f(x)=√(1-x^2),先使用概率算法求数字积分,之后将积分结果乘以4即为PI值。
输入:实验要使用的取值在[0,1]范围内的总点数
执行结果截图:
Ex3. 设a, b, c和d是实数,且a ≤ b, c ≤ d, f:[a, b] → [c, d]是一个连续函数,写一概率算法计算积分:
注意,函数的参数是a, b, c, d, n和f, 其中f用函数指针实现,请选一连续函数做实验,并给出实验结果。
连续函数为:f(x)=x+4.0
输入:横坐标的范围[4,8],纵坐标的范围 [0,12](产生的点的纵坐标是[0,12],函数值域为[8,12])。
执行结果截图:
EX4. 用上述算法,估计整数子集1~n的大小,并分析n对估计值的影响。
算法分析:不断从X={1,2,3,……n}中有放回的随机抽样,直到首次抽出重复元素为止,此时已经抽到的元素数目为K,则集合X的大小为:2K^2 / PI 。
算法的执行结果:
分析:在理论上当集合n越大时,估计集合大小的误差应该越小。但是可能是由于随机函数性能的问题,试验结果是随着n的增大,误差越来越大。
Ex. 分析dlogRH的工作原理,指出该算法相应的u和v
解:
算法首先使用函数u(a,b)将a随机化为c,之后使用确定性算法dlog(g,p,c)计算出随机化后的输入实例的计算结果y,最后使用函数v(y,r)将y恢复为以a为输入实例的计算结果。
Steps:
1. 产生一个随机值b
2. u(a,b)=ba mod p=c
3. dlog(g,p,c)= log g,p(c)=y
4. v(y,r)=(y-r) mod (p-1)=s
s即为dlog(g,p,a)的值。
原理解释:
因为 log g,p(c)= log g,p(ab mod p)=[log g,p(a)+log g,p(b)] mod (p-1)
y=[ log g,p(a)+log g,p(g^r mod p) ] mod (p-1)
y=[ log g,p(a)+r )] mod (p-1) (0= r = p-2)
log g,p(a)为输入实例为a的确定性算法的结果(即s):
s=log g,p(a)=(y-r) mod (p-1),而(y-r) mod (p-1)即为函数v(y,r)。
使用u(a,b)=ba mod p将a随机化为c,之后使用v(y,r)=(y-r) mod (p-1)可以将y恢复为s,所以v和u可以实现:将输入实例a随机化为c之后,把以c为输入的确定性算法的结果恢复为以a为输入时确定性算法的结果。
Ex. 写一Sherwood算法C,与算法A, B, D比较,给出实验结果。
算法C:由于算法B是一个确定性算法(在[1,√n]中找小于等于x的最大的y),所以将算法B修改为一个随机算法。
修改方法为:将从确定的区间[1,√n]中找y,更改为在[1,n]中随机取出√n个值,在这√n值中找y。之后再使用确定性算法Search(x,y)查找x。
修改方法的正确性说明:
因为“若将val[1..n]中的n个整数看作是均匀随机分布的,则在val[1..L]中求y值就相当于:在n个整数中,随机地取L个整数,求这L个整数中不大于x的最大整数y。”
所以在数组val的子区间[1,√n]中寻找一个y就等价于在整个[1,n]中先选出√n个值、再在这些值中找一y。
因此将算法B中的在[1,√n]中找y---在[1,n]中随机取出√n个整数,在这√n个整数中找y,是正确的。
算法设计:在一个已知的静态链表array[NUM]={{5,1},{7,8},{3,4},{0,2},{4,0},{11,7},{17,9},{14,6},{9,5},{20,10},{21,12},{25,13},{23,11},{30,15},{34,-1},{31,14}}中,分别使用A 、B 、C、 D算法查找
您可能关注的文档
最近下载
- 1.1 蓄电池的检查与日常维护 课件(共28张PPT)《汽车电器检测与维修》同步教学(机工版·2020).ppt.pptx VIP
- 电导率分析仪PRO-C3使用说明书.pdf VIP
- 关于新形势下党内政治生活的若干准则-PPT.pptx VIP
- FSC管理手册程序文件制度文件表单一整套.doc VIP
- LG TS16TH说明书 用户手册.pdf
- 智能体互联网技术白皮书(2025年)-.docx VIP
- 廉洁职业保证措施.docx VIP
- 考务工作手册(发给考务和监考) .pdf VIP
- 2023年长沙学院计算机科学与技术专业《计算机网络》科目期末试卷A(有答案).docx VIP
- 全国统一施工机械台班费用定额2012(excel版).pdf
原创力文档


文档评论(0)