迭代课件浙教版高中信息技术必修1_第1页
迭代课件浙教版高中信息技术必修1_第2页
迭代课件浙教版高中信息技术必修1_第3页
迭代课件浙教版高中信息技术必修1_第4页
迭代课件浙教版高中信息技术必修1_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

第五章迭代用Python程序编程实现求s=1+2+3+…+n的代码。n=int(input(“请输入一个正整数:”))s=0foriinrange(1,n+1):

s=s+iprint(s)迭代实例:迭代的科学概念:重复反馈过程的活动,其目的通常是是为了使结果符合目标需求。每一次对过程的重复被称为一次迭代,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。计算机解决问题时,也经常采用这种迭代的方式,即迭代算法。它利用计算机运算速度快、适合做重复性操作的特点,让计算机重复执行一组指令(或一些步骤),这组指令(或这些步骤)每执行一次时,都会将变量从原值递推出一个新值。迭代的概念:利用迭代算法处理问题,需要考虑以下三个方面:①确定迭代变量。在能够用迭代算法处理的问题中,至少具有一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。②建立迭代关系式(数值关系)。所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。③控制迭代过程(结束条件)。迭代过程在经过若干次重复执行以后要能结束,因此,要设定迭代结束的条件。迭代的算法:n=int(input(“请输入一个正整数:”))s=0foriinrange(1,n+1):

s=s+iprint(s)迭代实例:迭代变量?数值关系?迭代过程?迭代实例:斐波那契数列、黄金分割数列、兔子数列黄金分割数列:第10个数字是什么?f1f2f1+f2112123235358581381321132134①确定迭代变量。②建立迭代关系。③控制迭代(结束)过程。f1,f2=1,1f3=f1+f2程序实现:迭代实例:斐波那契数列、黄金分割数列、兔子数列假定我们有一雄─雌一对刚出生的兔子,它们在长到一个月大小时开始怀孕,在第二月结束时产下另一对兔子,每对新生兔在出生一个月后又下崽,如此这般持续下去。假定没有兔子死亡,在一年后总共有多少对兔子?①确定迭代变量。②建立迭代关系。③控制迭代(结束)过程。时间01月2月3月4月5月6月……幼兔1成兔0总数1①f1,f2,f3。②后一项为前两项的和。③12个月。迭代实例:斐波那契数列、黄金分割数列、兔子数列假定一对大兔子每月能生一对小兔子,且每对新生的小兔子经过一个月可以长成一对大兔子,具备繁殖能力,如果不发生死亡,且每次均生下一雌一雄。问一年后共有多少对兔子?①确定迭代变量。②建立迭代(数值)关系式。③控制迭代(结束)过程。时间01月2月3月4月5月6月……幼兔1011235成兔0112358总数11235813迭代实例:斐波那契数列、黄金分割数列、兔子数列时间01月2月3月4月5月6月……幼兔1011235成兔0112358总数11235813程序实现:f1=1f2=2foriinrange(3,13):f3=f1+f2f1=f2f2=f3print(f3)f1=1f2=2foriinrange(3,13):

f1,f2,=f2,f1+f2print(f2)辗转相除法求两个数的最大公约数的步骤如下:

先用小的一个数除大的一个数,得第一个余数;

再用第一个余数除小的一个数,得第二个余数;

又用第二个余数除第一个余数,得第三个余数;

这样逐次用后一个数去除前一个余数,直到余数是0为止.那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数).

例如求1515和600的最大公约数:

第一次:用600除1515,商2余315;第二次:用315除600,商1余285;

第三次:用285除315,商1余30;第四次:用30除285,商9余15;

第五次:用15除30,商2余0.1515和600的最大公约数是15.典型应用:辗转相除法、欧几里得算法典型应用:欧几里得算法欧几里得算法又称辗转相除法,用于计算两个整数m,n的最大公约数。基于定理:gcd(m,n)=gcd(n,m%n)即:整数m,n的最大公约数等于n和m除以n的余数的最大公约数。欧几里得算法在执行时,也是一个反复迭代的过程,直到余数等于0为止。Python代码实现如下:defgcd(m,n):whilen!=0:temp=nn=m%nm=tempreturnmm,n是迭代变量,迭代关系式nm和m%nn,由旧值推出新值,然后循环执行,直到余数为0,结束迭代。

迭代次数xnxn+1|xn+1-xn|111.50.521.51.4166670.08333331.4166671.4142160.00245141.4142161.4142140.000002相应的程序及测试结果如下所示:a=int(input(“请输入一个需要求其平方根的数:”))x=a/2while((abs(x+a/x)/2-x))>0.00001):x=(x+a/x)/2print(a,“的平方根约为”,round((x+a/x)/2,6))请输入一个需要求其平方根的数:22的平方根约为在用迭代法求2的平方根的例子中,若将迭代变量X的初值换为其他数值,对运行结果和迭代次数是否有影响?若把x的值设置为0或者其他负值

温馨提示

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

评论

0/150

提交评论