真是傑作呢
浪漫主义coder
posts - 33,comments - 0,views - 3456

迭代

迭代是一种不断用变量的旧值递推新值的过程。
迭代算法是计算机解决问题的一种基本方法。它从一个初始变量值出发,让计算机对一组指令(或一定步骤)进行重复执行,每次执行这组指令(或步骤)时,都从变量的原值推出它的一个新值。最终得到所求解。

迭代的步骤

(1)确定迭代变量
在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。
一般在确定迭代变量的同时,还要指定其初始值。
(2)建立迭代关系式
所谓迭代关系式,是指如何从变量的前一个值推出其下一个值的公式(或关系)。迭代关系式的建立是解决迭代问题的关键,通常可以顺推或倒推的方法来完成。
(3)对迭代过程进行控制
        什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。根据算法“有限性”的性质,不能让迭代过程无休止地重复执行下去。
        迭代过程的控制通常有两种情况:
a. 所需的迭代次数是个确定的值,可以计算出来。
F可以构建一个固定次数的循环来实现对迭代过程的控制。(常用for语句)
b. 所需的迭代次数开始时无法确定。
F需要进一步分析出用来结束迭代过程的条件。例如,当计算精度满足要求后结束。(常用while语句)

e.g.

古角猜想

  日本数学家角谷静夫在研究自然数时发现了一个奇怪现象:

           对于任意一个自然数 n ,若 n 为偶数,则将其除以 2 ;若 n 为奇数,则将其乘以 3 ,然后再加 1 。如此经过有限次运算后,总可以得到自然数 1 。
     要求:写出算法,由键盘输入一个自然数 n ,把 n 经过有限次运算后,最终变成自然数 1 的全过程打印出来。

递推

设要求问题规模为n的解,当n=1时,解已知或能方便得到,根据递推关系,能从i-1规模的解,推出i规模的解(i=2、3、……、n),这就是递推。当然也可以反过来,从n、n-1、……、3、2反推到1。

递推的步骤

(1建立递推关系
从变量的前一些值推出其下一个值的公式或关系。这是解决递推问题的关键。
(2)确定初始(边界)条件
根据问题最简单的情景确定其初始数据
(3)对递推过程进行控制

 

e.g.

 杨辉三角形 

杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现:

第k行有k个数;
每行的首尾两数均为1;
除首尾两数外,其余各数均为上一行肩上两数之和。

递推与迭代

递推的过程实际上就是迭代的过程,即不断用变量的旧值推出新值的过程。
一般递推使用数组(列表),在循环处理时利用其下标的变化实现变量的迭代,而狭义的迭代是指使用简单变量来完成这一过程。

posted on   真是傑作呢  阅读(491)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

欢迎阅读『递推与迭代』
点击右上角即可分享
微信分享提示