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
  • 相关阅读:
    可变形参 Day07
    流程控制 Day06
    基本数据类型的值传递 和引用数据类型的引用传递 Day06
    一维数组的求平均成绩 Day06
    一维数组的初始化及遍历 Day06
    字符串分割+二维数组 Day15练习
    Java对数组和列表的排序1.8新特性
    Java Stream
    JPA学习(六、JPA_JPQL)
    JPA学习(五、JPA_二级缓存)
  • 原文地址:https://www.cnblogs.com/zzu-general/p/8466543.html
Copyright © 2011-2022 走看看