Delannoy Numbers − A Delannoy number D describes the number of paths from the southwest corner(0,0) to northeast corner(a,b) in a rectangular grid using only allowed steps east ( →), northeast ( ↗ ) and north ( ↑ ).
Thus, we can say that a recurrence relation is,
D(a,b) = D(a-1,b) + D(a, b-1) + D(a-1, b-1) where D(0,0)=1.
For example, the Delannoy number D(3,3) equals 63.
Algorithm to find the Delannoy Number
Take two coordinates (a,b) as Input.
An Integer function generateDelannoy(int a, int b) which takes coordinates ‘a’ and ‘b’ as input.
In the base case, we will check If coordinates ‘a’ and ‘b’ are zero then return 1.
In the other case generate the Delannoy number and return the result by using recurrence relation for generating the Delannoy number D(a-1,b) + D(a,b-1) + D(a-1,b1).
Example
#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;
}Output
Running the above code will generate the output as,
63
For the given points (a,b) = (3,3), using the recurrence relation D(a-1,b) + D(a,b-1) + D(a-1,b-1) will generate the Delannoy number ‘63’ as output.