代码改变世界

动态规划

2011-01-29 17:14  Clingingboy  阅读(411)  评论(0编辑  收藏  举报

 

一.Catalan数

中学的有序数列就是一个递归式

如F(n+1) =F(n)+1 条件是n>=1,已知f(1)=1;

public static int Fun(int number)
{
    if (number >= 1)
        return Fun(number - 1) + 1;
    return 1;
}

Catalan式也是一个递归式数列,如下

http://baike.baidu.com/view/1163998.htm

public static int Catalan(int number)
{
    if(number<=1) return 1;
    int sum = 0;
    int start = 0;
    int end = number;
    while (end > 0)
    {
        sum += Catalan(start)*Catalan(end - 1);
        start++;
        end--;
    }
    return sum;
}

不管其出处,只管应用