zoukankan      html  css  js  c++  java
  • 递归

    递归函数: 用函数自身定义的函数

    递归算法:直接或间接调用自身的算法

    递归典型例子:Fibonacci数列,汉诺塔

    eg:

     将正整数 n 表示成一系列正整数之和。 

           n = n1+ n2 +……+ nk

    正整数n的不同划分个数称为正整数n的划分数,记作P(n)

       整数划分问题就是求出P(n)。

    分析:求 正整数 6 的划分数

        n=6                  n=3+3

        n=5+1                n=3+2+1

        n=4+2                n=3+1+1

        n=4+1+1              …..

    P(6) =11

    记 q(n,m)为在 n 的所有不同划分中,最大加数不大于m的划分数。

    例如: q(6,1)=1      即  6=1+1+1+1+1+1

                  q(6,2)=4      即  6=2+2+2

                                    6=2+2+1+1

                                    6=2+1+1+1+1

                                    6=1+1+1+1+1+1

                q(6,6)=11          

      q(n,1)=1              n>=1

     q(n,m)=q(n,n)     m>=n     (最大加数不能大于n)

     q(n,n) = 1+ q(n,n-1)          (n的划分由n1 =n的一种划分

                                                                        和ni <=n-1的划分组成)

    q(n,m)=q(n,m-1)+q (n-m, m)

    (n的划分由ni <=m-1的划分

                   和 n1=m, 其余加数ni <=m的划分组成

    int q(int n,int m){
    	if(n<1||m<1) return 0;
    	if(n==1||m==1) return 1;
    	if(m>n) return q(n,n);
    	if(m==n) return 1+q(n,m-1);
    	return q(n,m-1)+q(n-m,m);
    }
    

      

    你一定会喜欢那个因为喜欢她而发光的自己!
    个人博客:http://www.yanghelong.top
  • 相关阅读:
    让超链接点击后不跳转,可以用href = "#",但是这个#就会锚点到页面最上边 点击链接后不跳转可以设置成
    js 小数取整的函数
    谷歌浏览器常用快捷键
    Vi问题
    UbuntuFAQ
    Ubuntu下配置C/C++开发环境
    win7硬盘安装ubuntu双系统——注意项
    怎样判断自己是否在平庸者之列?
    2012年软件开发者薪资调查报告
    VIM常用快捷键~网页上查找
  • 原文地址:https://www.cnblogs.com/zzu-general/p/8466543.html
Copyright © 2011-2022 走看看