什么是德朗奈数?用C++编写一个查找德朗奈数的程序


德朗奈数 − 德朗奈数D描述了在矩形网格中从西南角(0,0)到东北角(a,b)的路径数,只允许向东 ( → )、东北 ( ↗ ) 和北 ( ↑ ) 三种步进方式。

因此,我们可以说递推关系是:

D(a,b) = D(a-1,b) + D(a, b-1) + D(a-1, b-1) where D(0,0)=1.

例如,德朗奈数D(3,3)等于63。

查找德朗奈数的算法

  • 输入两个坐标 (a,b)。

  • 一个整数函数 generateDelannoy(int a, int b) ,它接收坐标 ‘a’ 和 ‘b’ 作为输入。

  • 在基本情况下,我们将检查坐标 ‘a’ 和 ‘b’ 是否为零,如果是则返回 1。

  • 在其他情况下,使用生成德朗奈数的递推关系 D(a-1,b) + D(a,b-1) + D(a-1,b-1) 生成德朗奈数并返回结果。

示例

#include<iostream>
using namespace std;
int generateDelannoy(int a, int b){
   int d=1;
   if((a==0) || (b==0)){
      d=1;
   } else {
      d = generateDelannoy(a-1,b) + generateDelannoy(a,b-1) + generateDelannoy(a1,b-1);
   }
   return d;
}
int main(){
   int a=3;
   int b=3;
   int result=0;
   result= generateDelannoy(a,b);
   cout<<result<<endl;
}

输出

运行以上代码将生成以下输出:

63

对于给定的点 (a,b) = (3,3),使用递推关系 D(a-1,b) + D(a,b-1) + D(a-1,b-1) 将生成德朗奈数 ‘63’ 作为输出。

更新于:2021年2月5日

171 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告