C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

デラノイ数とは何ですか?デラノイ数を見つけるために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です。

デラノイ数を見つけるためのアルゴリズム

  • 2つの座標(a、b)を入力として使用します。

  • 座標「a」と「b」を入力として受け取る整数関数generateDelannoy(int a、int b)。

  • 基本ケースでは、座標「a」と「b」がゼロかどうかを確認してから、1を返します。

  • 他のケースでは、デラノイ数を生成し、漸化式を使用して結果を返し、デラノイ数D(a-1、b)+ D(a、b-1)+ D(a-1、b1)を生成します。

#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」。


  1. キーボードの可能な最小数を見つけるためのC++プログラムが盗まれた

    n個の要素を持つ配列Aがあるとします。昨夜強盗が行われた電気店がありました。ストア内に存在するすべてのキーボードは、整数xから昇順で番号が付けられました。たとえば、x =4で、ストアに3つのキーボードがある場合、デバイスのインデックスは4、5、6になります。x=10で7つある場合、キーボードのインデックスは10、11、12、13になります。 14、15、16。強盗の後、n個のキーボードだけが残ります。配列Aにインデックスが格納されています。盗まれたキーボードの可能な最小数を見つける必要があります。 したがって、入力がA =[10、13、12、8]の場合、出力は2になります。これは、x =8の

  2. グリッド内の照らされたセルの数を見つけるためのC++プログラム

    次元h*wのグリッドが与えられていると仮定します。グリッド内のセルには、球根または障害物のいずれかを含めることができます。電球のセルはそれ自体とその右、左、上、下のセルを照らし、障害物のセルが光を遮らない限り、光はセルを通して輝くことができます。障害物セルは照明できず、電球セルからの光が他のセルに到達するのを防ぎます。したがって、配列「bulb」内のグリッド内の電球セルの位置と配列「obstacles」内の障害物セルの位置を考えると、照らされているグリッド内のセルの総数を見つける必要があります。 したがって、入力がh =4、w =4、bulb ={{1、1}、{2、2}、{3、3}}、障害物