什麼是德朗奈數?用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 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.