版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
倒推法
11/6/20221例楼梯上有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编写算法计算共有多少种不同的上楼梯方法。只有两种情况:
1)
从第n-1阶到第n阶;
2)
从第n-2阶到第n阶。记n阶台阶的走法数为f(n),则
f(n)=1n=1
f(n)=2
n=2
f(n)=f(n-1)+f(n-2)n>211/6/20222main(){intn:;print('n=');input(n);print('f(',n,')=',f(n));}f(intx){if(x=1)
return(1);if(x=2)return(2);else
return(f(x-1)+f(x-2));}11/6/20223例:有两条完全相同的蚊香,每个可以点一个小时,问怎样量出45分钟?11/6/20224有一位探险家用5天的时间徒步横穿A、B两村,两村间是荒无人烟的沙漠,如果一个人只能担负3天的食物和水,那么这个探险家至少雇几个人才能顺利通过沙漠。
11/6/20225
A城雇用一人与探险家同带3天食物同行一天,然后被雇人带一天食物返回,并留一天食物给探险家,这样探险家正好有3天的食物继续前行,并于第三天打电话雇B城人带3天食物出发,第四天会面他们会面,探险家得到一天的食物赴B城。
11/6/20226随机化算法11/6/20227定义:在算法中引入随机因素,即通过随机数选择算法的下一步操作。特点:简单、快速一种平衡:随机算法可以理解为在时间、空间和随机三大计算资源中的平衡11/6/20228计算机产生随机数的方法d0=d
dn=bdn-1+c
an=dn%6553611/6/20229计算机产生随机数的方法unsignedintseed;
scanf("%d",&seed);
srand(seed);
for(i=0;i<MAX;i++){
printf("%d",rand()%10+1);}11/6/202210计算机产生随机数的方法srand((unsigned)time(0));
for(inti=0;i<MAX;i++){
printf("%d",rand()%10+1);}11/6/2022111、数值概率算法:用于数值问题的求解2、Sherwood算法一定能得到问题的正确解常见的四类随机算法:11/6/2022123、LasVegas算法或者得到正确的解,或者得不到解。4、MonteCarlo算法一定能得到解,但是得到的解可能不正确,然而这种概率是小的且有界的。常见的四类随机算法:11/6/202213数值概率算法11/6/202214用随机投点法计算值设有一半径为r的圆及其外切四边形。向该正方形随机地投掷n个点。设落入圆内的点数为k。由于所投入的点在正方形上均匀分布,因而所投入的点落入圆内的概率为。所以当n足够大时,k与n之比就逼近这一概率。从而。publicstaticdoubledarts(intn){//用随机投点法计算值
intk=0;for(inti=1;i<=n;i++){doublex=dart.fRandom();doubley=dart.fRandom();if((x*x+y*y)<=1)k++;}return4*k/(double)n;}11/6/202215举例:QuickSort传统的快排序算法
-总是取第一个元素作为划分元;
-算法的最坏运行时间是O(n2),平均时间是O(nlogn);-因此存在一些输入实例,使得算法达到最长运行时间,如:降序的序列;随机快排序算法
-随机选择一个元素作为划分元;
-任何一个输入的期望时间是O(nlogn);-是一个舍伍德算法;11/6/202216举例:八后问题对于大部分解,八后的位置并不具有系统性-因此可以随机地把它们放在连续的行上,只要注意不要互相威胁。但是可能会失败。解决方案:随机+回溯11/6/202217主元素问题设T[1…n]是一个含有n个元素的数组。当|{i|{T[i]=x}}|>n/2时,称元素x为数组T的主元素。
majority(int
t[],intn){
随机产生整数i;
intx=t[i];
intk=0;
for(intj=1;j<=n;j++)
if(t[j]==x)k++;
return(k>n/2);}
11/6/202218主元素问题majority2返回true的概率是p+(1-p)p=1-(1-p)2>3/4
majority2(intt[],intn){if(majority(t,n))returntrue; elsereturnmajority(t,n);}
11/6/202219主元素问题11/6/202220主元素问题设T[1:n]是一个含有n个元素的数组。当|{i|T[i]=x}|>n/2时,称元素x是数组T的主元素。publicstaticboolean
majority(int[]t,intn){//判定主元素的蒙特卡罗算法
rnd=newRandom();
inti=rnd.random(n)+1;
intx=t[i];//随机选择数组元素
intk=0;for(intj=1;j<=n;j++)if(t[j]==x)k++;return(k>n/2);//k>n/2时t含有主元素
}publicstaticboolean
majorityMC(int[]t,intn,doublee){//重复éù次调用算法majority
intk=(int)Math.ceil(Math.log(1/e)/Math.log(2));for(inti=1;i<=k;i++)if(majority(t,n))returntrue;returnfalse;}对于任何给定的>0,算法majorityMC重复调用log(1/)
次算法majority。它是一个偏真蒙特卡罗算法,且其错误概率小于。算法majorityMC所需的计算时间显然是O(nlog(1/))。11/6/202221素数测试Wilson定理:对于给定的正整数n,判定n是一个素数的充要条件是(n-1)!-1(modn)。费尔马小定理:如果p是一个素数,且0<a<p,则ap-1(modp)。二次探测定理:如果p是一个素数,且0<x<p,则方程x21(modp)的解为x=1,p-1。privatestaticint
power(inta,intp,intn){//计算apmodn,并实施对n的二次探测
intx,result;if(p==0)result=1;else{x=power(a,p/2,n);//递归计算
result=(x*x)%n;//二次探测
if((result==1)&&(x!=1)&&(x!=n-1))composite=true;if((p%2)==1)//p是奇数
result=(result*a)%n;}returnresult;}publicstaticboolean
prime(intn){//素数测试的蒙特卡罗算法
rnd=newRandom();
inta,result;composite=false;a=rnd.random(n-3)+2;result=power(a,n-1,n);if(composite||(result!=1))returnfalse;elsereturntrue;}算法prime是一个偏假3/4正确的蒙特卡罗算法。通过多次重复调用错误概率不超过(1/4)k。这是一个很保守的估计,实际使用的效果要好得多。11/6/202222算法导论11/6/202223RSA公钥加密系统
11/6/202224反复平方法求数的幂11/6/202225RSA1.Selectatrandomtwolargeprimenumberspandqsuchthatp≠
q.2.Computenbytheequationn=pq.3.Selectasmalloddintegerethatisrelativelyprimetoφ(n),equals(p-1)(q-1).4.Computedas
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卫生专业技术资格考试康复医学(中级348)相关专业知识备考策略详解
- 《平平安安回家来》分层作业(含答案)-2026-2027学年统编版小学道德与法治一年级上册(新教材)
- 0508四年级语文(统编版)-乡下人家1-教案
- 通信原理作业详解
- 天长市文职辅警招聘考试真题
- 中药材种植基地农产品溯源体系建设协议
- 线上考证培训课程开发合同
- 湖北省武汉市思想政治高三下学期期末复习策略详解
- 班组长培训专项合作协议2026年版
- 中医妇科学(中级331)专业实践能力卫生专业技术资格考试备考难点精析
- 2024-2025学年九年级(全一册)物理同步单元讲练测第十七章欧姆定律-讲核心(原卷版+解析)
- 矿瓦斯抽采达标评判
- 实验室装修工程预算编制全解
- 实施医疗质量管理风险预警与防范机制措施
- 生产工艺方案设计流程
- 三年级下册数学长方形正方形面积专项
- DB11T 657.2-2024 公共交通客运标志 第2部分:城市轨道交通
- 电子元器件来料检验规范
- 九项核心制度
- 2022年河南文化和旅游厅事业单位笔试试题及答案
- 变速箱厂总平面布置设计设施规划与物流分析课程设计
评论
0/150
提交评论