ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:369.09KB ,
资源ID:9009225      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9009225.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(算法设计概率算法作业.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

算法设计概率算法作业.docx

1、算法设计概率算法作业算法设计概率算法作业 一概率算法二源代码概率算法三近似算法一. 概率算法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=22。Ex2. 在机械上用 估量值,给出不同的n值及精度。原理:f(x)=(1

2、-x2),先利用概率算法求数字积分,以后将积分结果乘以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,8,纵坐标的范围 0,12(产生的点的纵坐标是0,12,函数值域为8,12)。执行结果截图:EX4. 用上述算法,估量整数子集1n的大小,并分析n对估量值的阻碍。算法分析:不断从X=

3、1,2,3,n中有放回的随机抽样,直到第一次抽出重复元素为止,现在已经抽到的元素数量为K,那么集合X的大小为:2K2 / PI 。算法的执行结果:分析:在理论被骗集合n越大时,估量集合大小的误差应该越小。可是可能是由于随机函数性能的问题,实验结果是随着n的增大,误差却愈来愈大。Ex5. 分析dlogRH的工作原理,指出该算法相应的u和v解:算法第一利用函数u(a,b)将a随机化为c,以后利用确信性算法dlog(g,p,c)计算出随机化后的输入实例的计算结果y,最后利用函数v(y,r)将y恢复为以a为输入实例的计算结果。Steps:1. 产生一个随机值b2. u(a,b)=ba mod p=c3

4、. dlog(g,p,c)= log g,p(c)=y4. v(y,r)=(y-r) mod (p-1)=ss即为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(gr mod p) mod (p-1) y= log g,p(a)+r ) mod (p-1) (0= r 在1,n中随机掏出n个整数,在这n个整数中找y,是正确的。算法设计:在一个已知的静态链表(其中每一个表项的含义是 data , rank )arrayNUM=5,1,

5、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算法查找11的位置。算法的执行结果:Ex7. 证明:当放置(k+1)th皇后时,假设有多个位置是开放的,那么算法QueensLV选中其中任一名置的概率相等。证:设k+1行皇后共找到M个open位置,那么最后放入Mth位置的p=1/M;最后放入(M-1)的p为:在Mth不取到1 & 在(M-1)th取到1,p=1/(M-1) * (1-1/M)=1/M;最后放入(M-2)的p为:在Mth不取到1 &在(M-1)th

6、不取到1 & 在(M-2)th取到1,p=1/(M-2) * (1-1/(M-1)* (1-1/M)=1/M,依次类推,可知关于找到的M个open位置,k+1皇后最终放置于哪个位置的概率都相等,均为1/M。Ex8. 写一算法,求n=1220时最优的StepVegas值。算法的执行结果:Ex9. PrintPrimes 源代码概率算法1.在机械上用 估量值,给出不同的n值及精度。 ()#include#include#include#includedouble estimatePI(int n)int k=0,times=n;double x,y,temp;srand(int)time(0);d

7、ox=*rand()/*RAND_MAX);y=*rand()/*RAND_MAX);3. if(x*x+y*y)=1) #include#include#include#include#define PI /*验证算法(输入大小为Exact_N的集合,运行算法,得出估量值N,将Exact_N与N进行比较),而且探讨集合的大小n与算法的成效(即估量值)的关系。*/ int random_i(int N); int lookup(int val,int *array,int len);int estimateSet(int Exact_N)int *S; 写一Sherwood算法C,与算法A,

8、B, D比较,给出实验结果。(Ex6.)#include#include#include#include#define NUM 16struct SLinklistint data;int n_index;struct SLinklist arrayNUM=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; 015#define val(i) (arrayi.data)#define ptr(i) (arrayi.n_index)int head=3;srand(unsigned)t

9、ime(0);dorandom_index=rand()%NUM;while(val(random_index)x);int j=1;for(;j=sqrt(NUM);j+) n,count);return pos;n,count);return pos;int j=1;for(;jmax & val(j)=x)max=val(j);i=j;int count;int pos=Search(x,j,&count);printf(B算法比较了 %d 次.n,count);return pos;int main()int x=11;int pos=C(x);printf(C: x=11s posi

10、tion is %d.n,pos);int countA;pos=Search(x,head,&countA);printf(A算法比较了 %d 次.n,countA);printf(A: x=11s position is %d.n,pos);int countD,posD;posD=D(x);printf(D: x=11s position is %d.n,posD);int countB,posB;posB=B(x);printf(B: x=11s position is %d.n,posB);exit(0);/*C算法解析:B算法是一个确信性算法,将其的输入改成随机的sqt(NUM)个

11、,也确实是将B改造成了shrewood算法。*/5.写一算法,求n=1220时最优的StepVegas值(Ex8. )#include#include#include#include#define SUCCESS 1#define FAIL 0#define EMPTY -65536int failNodeNum,sumNodeNum,N;int *try,*array135,*array45,*arrayCol;void alloc_array(int n)try=(int *)malloc(sizeof(int)*(n+1);array135=(int *)malloc(sizeof(in

12、t)*(n+1);array45=(int *)malloc(sizeof(int)*(n+1);arrayCol=(int *)malloc(sizeof(int)*(n+1);void free_array()free(try);free(array135);free(array45);free(arrayCol);void init(int *array,int n) int i=0;for(;i=n;i+)arrayi=EMPTY;void init_all(int n)init(try,n);init(array135,n);init(array45,n);init(arrayCol

13、,n);failNodeNum=0,sumNodeNum=0;alloc_array(N);best_sv=-1,best_rate=;tmp_sv=1;for(;tmp_sv=N;tmp_sv+)init_all(N);Obstinate(tmp_sv,N);tmp_rate=(double)sumNodeNum;if(tmp_ratebest_rate | best_ratebest_sv=tmp_sv;best_rate=tmp_rate;printf(当N=%d时,stepVages=%d.n,N,best_sv);free_array();exit(0);6. PrintPrimes

14、 )#include#include#includeextern int Btest(int a,int n);extern int MillRab(int n);extern int RepeatMillRab(int n,int k);extern int PrintPrimes(int n);extern int PrintPrimesTotal();extern int get_exponent(int a, int b,int p);i_float)*t);if(get_exponent(a,temp,n)=(n-1) return 1;return 0; ; 似算法1. G中最大团的size为当且仅当Gm里最大团的size是m*证:Gm是由各个G间彼此连接而成的各个G中的最大团也彼此连通了又最大团即最大连通子图,各个G中的最大连通子图彼此连接便形成了Gm的最大连通子图Gm的最大团=m个G的最大团相连当G的团size(极点数)为a时,Gm的最大团大小就应该为m*a当Gm的最大团大小为m*a时,断开在形成Gm时m个G彼此相连的边,易知m个G中的最大团大小就应该为a,因为每一个G都是一样的。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1