本次探究主要围绕数学问题“斐波拉契数列”项目展开,在一题两解的算法设计过程中,对比经典算法中的迭代和递归,深入解析两者的关系,并在此基础上进行其他数学问题的深入研究。
(1)迭代法也称为辗转法,每一次对过程的重复被称为一次“迭代”,每一次迭代,都是从迭代变量的原值推出它的一个新值作为新一轮计算的初值,计算机重复执行着迭代表达式,直到到达所需要的结果。迭代法求解问题三步骤:确定迭代变量;建立迭代表达式;控制迭代的执行过程。
(2)递归法是一种直接或间接调用自身的方法,在定义自身的过程中又出现直接或间接调用。将一个复杂的大问题层层转化为规模较小的同类问题进行求解,分为递推和回归两部分,递归算法的条件是递推关系和递归结束的条件。重点在于小规模同类问题的划分,不必过多关注同类小问题的求解。
两者共同点在于都需要重复执行某些语句,迭代通常使用计数器结束循环,递归通常满足终止条件逐层返回。下面结合一题两解项目活动,在求解过程中继续深化理解。