递归模型
一般由递归出口和递归体两部分组成,前者确定递归到何时为止,后者确定递归的方式。
递归出口的一般格式为:
f(s0)=m0
这里s0与m0均为常量,有些递归问题可能有多个递归出口。
递归体一般格式为:
f(s)=g(f(s1),f(s2),……,f(sn),c1,c2,……,cm)
这是S是一个递归大问题,s1,s2,……,sn为递归小问题,c1,c2,……,cm是若干个可以直接解决的问题。g为递归函数,反映了递归问题的结构。
递归设计的步骤:
1. 对原问题f(s)进行分析,假设出合理的较小问题f(s')。
2. 假设f(s')是可解的,并在此基础上确定f(s)的解,即给出f(s)与f(s')之间的关系。
3. 确定一个特定情况(如f(1)或f(0))的解,作为递归出口。