当前位置: 首页 > news >正文

建网站价格多少网站建设需要审批吗

建网站价格多少,网站建设需要审批吗,上海网站推广行业需求,陈木胜导演1,概念 卡特兰数(英语:Catalan number),又称卡塔兰数,明安图数。是组合数学中一种常出现于各种计数问题中的数列。它在不同的计数问题中频繁出现。 2,公式 卡特兰数的递推公式为:f(…

1,概念

        卡特兰数(英语:Catalan number),又称卡塔兰数,明安图数。是组合数学中一种常出现于各种计数问题中的数列。它在不同的计数问题中频繁出现。

2,公式

       卡特兰数的递推公式为:f(n) = f(0) * f(n - 1) + f(1) * f(n - 2) + ... + f(n - 1) * f(0)其中初始值f(0) = f(1) = 1

        这个数列的前几项为:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452...。

3,卡特兰数代码实现

递归

int catalan1(int n)
{
    if (n <= 1) return 1;

    int res = 0;
    for (int i = 1; i <= n - 1; i++)
        res += catalan1(i)*catalan1(n-i);

    return res;
}

非递归

int catalan2(int n)
{
    if (n <= 1) return 1;

    int* h = new int[n];
    h[0] = h[1] = 1;
    for (int i = 2; i < n ; i++)
    {
        h[i] = 0;
        for (int j = 0; j < i; j++)
            h[i] += (h[j] * h[i - 1 - j]); //f[i]=f[0]*f[i-1]+f[1]*f[i-2]+...+f[i-1]*f[0]
    }
    int result = h[n-1];
    delete[] h;
    return result; 

}

4,卡特兰数的应用 

        对于卡特兰数的介绍,我们只知道了它是组合数学中的一种规律,并没有具体意义,是一个常见的数学规律。

        对于卡特兰数的初步理解:有一些操作,这些操作有一定的限制,如一种操作数不能超过另一种操作数,或两种操作数不能有交集,求这些操作的合法数量。

应用1:出栈次序(进出栈问题)

【问题描述】

一个无穷大的栈,进展序列为1,2,3,......,n,问出栈顺序有多少种?

【问题分析】

设f(n)=序列个数为n的出栈序列种数。假定,从开始到栈第一次出空为止,这段过程中第一个出栈的序数是k,如果栈直到整个过程结束时,才为空,那么k=n;首次出空之前,第一个出栈序数k,将1~n的序列划分成两部分。其中一个是1~k-1,一共k-1个数;另一部分是k+1~n,一共n-k个数。

此时,我们把k看作是一个序数,根据乘法原理,f(n)就等价于 序列个数为k-1的出栈序列种树*序列个数为n-k的出栈序列种树。即f(n)=f(k-1)*f(n-k)。而k可以从1选到n,再根据加法原理,将k取不同的值,然后求和,得到总序列种数为:f(n)=f(0)f(n-1)+f(1)f(n-2)+……+f(n-1)f(0)。就是卡特兰数的规律,再令f(0)=f(1)=1求解即可。

应用2:括号匹配

【问题描述】

由一对括号,可以组成一种合法序列:()

由两对括号,可以组成两种合法序列:()(),(())

问:由n对括号组成的合法括号序列一共有多少中?

【问题分析】

        首先,n对括号我们看成是2n个字符,n个左括号,n个右括号。设问题的解为f(2n)。第0个字符肯定为左括号,而第2*i+1个字符肯定为右括号,如果第2*i个字符为右括号,那么0~2*i一共由2*i+1奇数个字符,而奇数个字符是 无法匹配的。

        f(2n)可以转化如下的递推式 f(2n) = f(0)*f(2n-2) + f(2)*f(2n - 4) + ... + f(2n - 4)*f(2) + f(2n-2)*f(0)。f(0)*f(2n-2)表示第0个字符和第1个字符匹配,剩余两部分,一部分0个字符,一部分2n-2个字符。f(2)*f(2n-4)表示 第0个字符和第3个字符匹配,剩余两部分,一部分2个字符,一部分2n-4个字符。以此类推可得出递推式。

        f(0)=1,分别计算出f(1),f(2),f(3),f(4),f(5),得出f(2n)就是一个卡特兰数的数列。

应用3:二叉树生成问题

【问题描述】

n个节点 构成的二叉数,共有多少情形?

【问题分析】

        设题解为f(n),T(i,j)表示:一颗二叉树,它的左子树有i个节点,右子树有j个节点。

        根肯定会占用一个节点,那么它的左右子树:T(0,n-1),T(1,n-2),T(2,n-3),...,T(n-1,0)。

        那么f(n)=f(0)*f(n-1)+f(1)*f(n-2)+f(2)*f(n-3)+...+f(n-1)*f(0)。假设 f(0)=1,那么f(1)=1,f(2)=2,f(3)=5,满足卡特兰数的规律。

应用4:矩阵链乘

【问题描述】

矩阵链乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?

【问题分析】

        首先通过括号化,将P分成两个部分,然后分别对两个部分进行括号化。比如分成(a1)×(a2×a3.....×an),然后再对(a1)和(a2×a3.....×an)分别括号化;又如分成(a1×a2)×(a3.....×an),然后再对(a1×a2)和(a3.....×an)括号化。

        设n个矩阵的括号化方案的种数为f(n),那么问题的解为f(n) = f(1)*f(n-1) + f(2)*f(n-2) + f(3)*f(n-3) + f(n-1)*f(1)。f(1)*f(n-1)表示分成(a1)×(a2×a3.....×an)两部分,然后分别括号化。

        计算开始几项,f(1) = 1, f(2) = 1, f(3) = 2, f(4) = 5。结合递归式,满足卡特兰数规律。

http://www.yayakq.cn/news/989663/

相关文章:

  • 内部网站建设、wordpress 分类前缀
  • asp 网站卡死高校门户网站的建设方案
  • 优秀大校网站开封建设教育协会网站
  • 怎么做网站旅游宣传网店设计风格有哪些
  • 遵义服务好的网站建设公司wordpress用户角色插件
  • 江西企业网站建设中国知名十大室内设计公司排名
  • 个人备案网站可以做产品推广网页版word在线编辑
  • dw做网站首页怎么做动画设计稿
  • 网站建设赫伟创意星空科技网站的设计页面
  • 建筑网站排行一般做企业网站需要什么
  • 怎样做网站的轮播图片wordpress网站关键词
  • 如何做影视网站云南医疗seo整站优化
  • lanyun网站开发网站建设报价是多少
  • 爱美眉网站源码做网站要什么条件
  • 企业网站源码怎么获取企业做网站注意事项
  • 如何建立商城网站咖啡豆网站模板
  • 网站栏目设计内容网站域名已经被绑定
  • 乐清手机网站网站视频不能下载怎么保存视频
  • 网站项目申请网站改版不更换域名 .net怎么做301网站重定向
  • 网站固定通栏代码做海报的素材哪个网站
  • 做网站须要什么技术工业vi设计
  • 张店网站制作首选专家网页设计与网站开发的卷子
  • 手游源码网站长沙网站建设长沙建设银行
  • 大网站建设工程建设项目管理系统
  • 网站交互做的比较好的东莞常平镇地图全图
  • 做一个公司的网站应做哪些准备常州网站制作计划
  • 高端网站建设公司排名网站建设支付
  • 余姚企业网站建设公司建设安全监督网
  • 北京网站建设公司兴田德润电话wordpress男性模板
  • 网站可信度建设有多少种做网站后台程序