1、5.2.1 迭代明明很喜欢研究古代历史,他最近买了一本三国演义,他计划第一天看10页,第二天看15页,第三天看20页,直到在暑假把这本书看完。迭代迭代是重复反馈过程的活动,其目的通常是是为了使结果符合目标需求。例如,针对某个产品的开发,可以采用迭代的方式进行。计算机解决问题时,也经常采用这种迭代的方式,即迭代算法。它利用计算机运算速度快、适合做重复性操作的特点,让计算机重复执行一组指令(或一些步骤),这组指令(或这些步骤)每执行一次时,都会将变量从原值递推出一个新值。利用迭代算法处理问题,需要考虑以下三个方面:确定迭代变量。在能够用迭代算法处理的问题中,至少具有一个直接或间接地不断由旧值递推出
2、新值的变量,这个变量就是迭代变量。建立迭代关系式。所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。控制迭代过程。迭代过程在经过若干次重复执行以后要能结束,因此,要设定迭代结束的条件。迭代次数迭代次数x xn nx xn+1n+1|x|xn+1n+1-x-xn n|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)
3、:x=(x+a/x)/2Print(a,“的平方根约为”,round(x+a/x)/2,6)请输入一个需要求其平方根的数:22的平方根约为1.414214在用迭代法求2的平方根的例子中,若将迭代变量X的初值换为其他数值,对运行结果和迭代次数是否有影响?若把x的值设置为0或者其他负值,则将得到错误的迭代结果。一般情况下,应当把x的初值设置为接近于正确解的估值,这样可以得到正确的结果,同时迭代次数也会减少。一般而言,应当注意求根公式的三个问题:一是问题本身应有解;二是选择的初值应接近解的估值,以减少迭代次数;三是迭代公式应该是正确的。典型应用:欧几里得算法欧几里得算法又称辗转相除法,用于计算两个整
4、数m,n的最大公约数。基于定理:gcd(m,n)=gcd(n,m mod n)即:整数m,n的最大公约数等于n和m除以n的余数的最大公约数。欧几里得算法在执行时,也是一个反复迭代的过程,直到余数等于0为止。Python代码实现如下:def gcd(m,n):while n!=0:temp=n n=m%n m=temp return mm,n是迭代变量,迭代关系式n m和m%n n,由旧值推出新值,然后循环执行,直到余数为0,结束迭代。练一练1.用Python程序编程实现利用迭代算法求s=1+2+3+n的代码。n=int(input(“请输入一个正整数:”)s=0for i in range(1
5、,n+1):s=s+iprint(s)2.Python从最初发布到现在的版本不断更新的过程可以看出,一款软件从上市到最终框架的成型,是不断试错、不断根据用户体验反馈快速调整和完善得到的结果。这个例子体现的算法思想是()A.枚举 B.解析 C.迭代 D.递归C3.下列Python程序的功能是使用迭代算法求c的值。list1=1,3,2,4,5,8,7,6,9,4,2,3c=0n=int(input(请输入n的值:)for i in range(2,n):a=list1i-list1i-1 b=list1i-1-list1i-2 c=c+a+bprint(c)运行程序时,输入n的值为9,则输出c的值为()A.5 B.9 C.10 D.11D谢 谢