算法设计与分析_第1页
算法设计与分析_第2页
算法设计与分析_第3页
算法设计与分析_第4页
算法设计与分析_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Ex.1(p20) 若将y uniform(0, 1) 改为 y x, 则上述的算法估计的值是什么?解:若将y uniform(0, 1) 改为 y x,此时有2x21,则k+,即x(0,22,此时k+,由于此时x uniform(0, 1),所以k/n=22,则此时4k/n=22。所以上述算法估计的值为22。Ex.2(p23) 在机器上用4011-x2dx估计值,给出不同的n值及精度。解:由ppt上p21可知,011-x2dx的大小s=kn,其中k为落入圆内的数目,n为总数,且=4011-x2dx,即需要计算4k/n。我们先令x uniform(0, 1),y uniform(0, 1)。计

2、算x2+y2的值,如果小于等于1,那么此时k+。最后计算4k/n的值即可估计此时的值。代码的主要部分为:执行结果为:结果分析:随着N的取值不断地增加,得到的值也就越来越精确。Ex.3(p23) 设a, b, c和d是实数,且a b, c d, f:a, b c, d是一个连续函数,写一概率算法计算积分:abfxdx注意,函数的参数是a, b, c, d, n和f, 其中f用函数指针实现,请选一连续函数做实验,并给出实验结果。解:abfxdx的值为y= fx,y=0,x=a,x=b围成的面积。根据之前的例子我们可以知道abfxdx = k(b-a)d/n。其中k是落在函数y= fx,x=a,x=

3、b以及y=0所包围区间内的个数。代码的主要部分为:运行结果为:结果分析:随着N的取值不断地增加,得到的积分值越来越精确。Ex4(p24). 设,是(0,1)之间的常数,证明:若I是01f(x)dx的正确值,h是由HitorMiss算法返回的值,则当n I(1-I)/2时有:Prob|h-I| < 1 上述的意义告诉我们:Prob|h-I| , 即:当n I(1-I)/ 2时,算法的计算结果的绝对误差超过的概率不超过,因此我们根据给定和可以确定算法迭代的次数n=I(1-I)2142 (I(1-I)14)解此问题时可用切比雪夫不等式,将I看作是数学期望。证明:由切比雪夫不等式可知:P( |

4、X - E(X) | < ) 1 - D(X) / ²由题目知,E(X)=I。且根据题意,我们可知,在HotorMiss算法中,若随机选取n个点,其中k个点在积分范围内,则X=kn。且k的分布为二项分布B(n,I)(在积分范围内或者不在积分范围内),则Dk=n*I(1-I)。又因为k=x*n,所以D(X)=I(1-I)/n。再将E(X)和D(X)带入切比雪夫不等式中即可得到n=I(1-I)2142Ex5(p36). 用上述算法,估计整数子集1n的大小,并分析n对估计值的影响。解:由题知,集合的大小n=2k2,通过计算新生成的集合中元素的个数来估计原集合的大小,代码的主体部分如下

5、:运行结果为(部分):结果分析为:我也分析不出啥,可能N的值太小了。Ex6(p54). 分析dlogRH的工作原理,指出该算法相应的u和v。解:因为x = (y-r) mod (p-1)。且r = logg,p(gr mod p) (由公式2),即 -r = logg,p1(gr mod p) 又因为 y = logg,pc所以 x = (y-r) mod (p-1) = (logg,pc + logg,p1(gr mod p) mod (p-1) = logg,pc*1gr mod pmod p (由公式1)又因为 c = ba mod p , b=gr mod p即x = logg,p a

6、*(gr mod p)*1(gr mod p) = logg,p a通过以上分析可以,该算法的u为 ba mod p , v为(y-r) mod (p-1)。Ex7(p67). 写一Sherwood算法C,与算法A, B, D比较,给出实验结果。 解:Sherwood算法C的思想:算法C在算法B的基础上做了一些改进,算法B取在val的前n个数中找不大于x的最大整数y。算法C则是在1n中随机挑选n个数,从中找出不大于x的最大整数y。算法A,B,C,D的具体实现如下图所示:通过寻找某一个数X,计算A,B,C,D算法在表中查找X所需的访问数组元素的次数来比较算法A,B,C,D的性能。具体的执行结果如

7、下图所示:结果分析:算法C的性能最优呀,还能说什么,总不能说这个算法不好吧。Ex8(p77).证明:当放置(k+1)th皇后时,若有多个位置是开放的,则算法QueensLV选中其中任一位置的概率相等。证明:当放置(k+1)th皇后时,假设有n个位置开放,记为S1,S2,Sn。设选择位置Si时的概率为Pi。如果Si被选中,此时必有uniform(1,i)=1,且对于所有的j>i,都有uniform(1,j)=0。且P(uniform(1,i)=1) = 1/i。P(uniform(1,j)=0) = (j-1)/j所以:Pi = (1/i * i/i+1 * * n-1/n) = 1/n即

8、选择位置Si的概率为1/n,所以算法选中其中任意位置的概率相等。Ex9(p83). 写一算法,求n=1220时最优的StepVegas值。解:对于每个N,当stepVegas从1取到N,对于每一个stepVegas我们重复计算100次,使用一百次的平均成功率以及平均执行时间来描述此stepVegas的性能。算法的主要代码如下图所示:分别取N=12,13,14,20,对于每一个N,具体的执行结果如下图所示:当N=12时,结果如下如所示,从图中我们可以看出此时的最优stepVegas为4:当N=13时,结果如下如所示,从图中我们可以看出此时的最优stepVegas为4:当N=14时,结果如下如所示

9、,从图中我们可以看出此时的最优stepVegas为4:当N=15时,结果如下如所示,从图中我们可以看出此时的最优stepVegas为5:当N=16时,结果如下如所示,从图中我们可以看出此时的最优stepVegas为6:当N=17时,结果如下如所示,从图中我们可以看出此时的最优stepVegas为6:当N=18时,结果如下如所示,从图中我们可以看出此时的最优stepVegas为7:当N=19时,结果如下如所示,从图中我们可以看出此时的最优stepVegas为7:当N=20时,结果如下如所示,从图中我们可以看出此时的最优stepVegas为8:结果分析:从结果中我们可以看出,当stepVegas取

10、N的一半还小一点时,此时得到最优的stepVegas。此外,当N很大时,单独的使用回溯法虽然一定能够找到一个合法解,但是此时算法的执行时间较长,如果单独的使用概率算法来寻求一个合法解,此时算法的成功率很低,需要执行很多次才能找到一个合法解。为了解决这两种算法的弊端,我们采用将回溯法和概率算法结合起来的方式来避免这两种算法的弊端,实验结果也证明了这种结合的方法时高效的。Ex10(p147).PrintPrimes /打印1万以内的素数print 2,3;n 5;repeatif RepeatMillRab(n, lgn) then print n;n n+2;until n=10000;与确定性算法相比较,并给出10010000以内错误的比例。解:通过执行Miller Rabin算法来判定一个数是否为合数还是强伪素数或者素数,多次重复执行Miller Rabin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论