从“信件装错”问题向递推问题的延伸

对于含有一定递推规律的实际问题,往往是找到递推公式,而对于给出的题目,sample往往是几个简单的可以计算出来的值,对于sample的分析是一个艰辛的探索过程(有时候确实找不出,其原因是因为数学知识储备不够,另外就是该类题目递推出的数据很大,给出的sample不足以作出结论),这往往需要一些数学方面的储备,以防不测。

关于递推的问题有好多,在下边稍稍总结几个。

一、斐波那契数列问题

描述:除第1,2项外,前n项满足a[n]=a[n-1]+a[n-2],所以递归计算部分源代码就如,

int fib(int n)

{

if(n<=1)return n;

else return fib(n-1)+fib(n-2);

}

同类型题目有兔子数目问题,蜂巢问题等等;

二、信件全部装过错问题

描述:有n封信件,请计算全部装错的种类。其递推公式为a[n]=a[n-1]*n+(-1)^n,n从1开始计数,其主要源代码如下,

int let(int n)

{

if(n<=1)return n-1;

else return let(n-1)*n+pow((-1),n);

}

 

posted on 2013-08-05 20:16  金仁赫  阅读(300)  评论(0)    收藏  举报

导航