Рубрики

Путь Дейка

Рассмотрим тревожную сетку с индексами верхнего левого угла как (0, 0). Путь Dyck — это лестница, идущая от нижнего левого угла, то есть (n-1, 0) к верхнему правому углу, т. Е. (0, n-1), которая лежит над диагональными ячейками (или ячейками на линии снизу слева на верхний правый угол) ,

Задача состоит в том, чтобы подсчитать количество путей Dyck от (n-1, 0) до (0, n-1).

Примеры :

Input : n = 1
Output : 1

Input : n = 2
Output : 2

Input : n = 3
Output : 5

Input : n = 4
Output : 14

Количество путей Дейка от (n-1, 0) до (0, n-1) может быть задано каталонским числом C (n).


Мы настоятельно рекомендуем вам нажать здесь и попрактиковаться, прежде чем переходить к решению.

Ниже приведены реализации для определения количества путей Dyck (или n-го каталонского числа).

C ++

// C ++ программа для подсчета
// количество путей Dyck
#include<iostream>

using namespace std;

  
// Возвращает count Dyck
// пути в сетке nxn

int countDyckPaths(unsigned int n)

{

    // Вычисляем значение 2nCn

    int res = 1;

    for (int i = 0; i < n; ++i)

    {

        res *= (2 * n - i);

        res /= (i + 1);

    }

  

    // вернуть 2nCn / (n + 1)

    return res / (n+1);

}

  
// Код драйвера

int main()

{

    int n = 4;

    cout << "Number of Dyck Paths is " 

         << countDyckPaths(n);

    return 0;

}

Джава

// Java-программа для подсчета
// количество путей Dyck

class GFG

{

    // Возвращает count Dyck

    // пути в сетке nxn

    public static int countDyckPaths(int n)

    {

        // Вычисляем значение 2nCn

        int res = 1;

        for (int i = 0; i < n; ++i)

        {

            res *= (2 * n - i);

            res /= (i + 1);

        }

  

        // вернуть 2nCn / (n + 1)

        return res / (n + 1);

    }

  

    // Код драйвера

    public static void main(String args[])

    {

        int n = 4;

        System.out.println("Number of Dyck Paths is " +

                                    countDyckPaths(n));

    }

}

python3

# Python3 программа для подсчета
# количество путей Dyck

  
# Возвращает количество Дейк
# пути в сетке nxn

def countDyckPaths(n):

      

    # Вычислить значение 2nCn

    res = 1

    for i in range(0, n):

        res *= (2 * n - i)

        res /= (i + 1)

  

    # return 2nCn / (n + 1)

    return res / (n+1)

  
Код водителя

n = 4

print("Number of Dyck Paths is ",

    str(int(countDyckPaths(n))))

  
# Этот код предоставлен
# Прасад Кширсагар

C #

// C # программа для подсчета
// количество путей Dyck

using System;

  

class GFG {

      

    // Возвращает count Dyck

    // пути в сетке nxn

    static int countDyckPaths(int n)

    {

          

        // Вычисляем значение 2nCn

        int res = 1;

        for (int i = 0; i < n; ++i)

        {

            res *= (2 * n - i);

            res /= (i + 1);

        }

  

        // вернуть 2nCn / (n + 1)

        return res / (n + 1);

    }

  

    // Код драйвера

    public static void Main()

    {

        int n = 4;

        Console.WriteLine("Number of "

                  + "Dyck Paths is " +

                   countDyckPaths(n));

    }

}

  
// Этот код предоставлен anuj_67.

PHP

<?php
// PHP-программа для подсчета
// количество путей Dyck

  
// Возвращает count Dyck
// пути в сетке nxn

function countDyckPaths( $n)

{

    // Вычисляем значение 2nCn

    $res = 1;

    for ( $i = 0; $i < $n; ++$i)

    {

        $res *= (2 * $n - $i);

        $res /= ($i + 1);

    }

  

    // вернуть 2nCn / (n + 1)

    return $res / ($n + 1);

}

  
// Код драйвера

$n = 4;

echo "Number of Dyck Paths is "

              countDyckPaths($n);

  
// Этот код предоставлен anuj_67.
?>


Выход :

Number of Dyck Paths is 14

Упражнение:

  1. Найдите число последовательностей 1 и -1, чтобы каждая последовательность следовала приведенным ниже ограничениям:
    а) длина последовательности 2n
    б) Есть равное количество 1 и -1, т. е. n 1, n -1
    c) Сумма префикса каждой последовательности больше или равна 0. Например, 1, -1, 1, -1 и 1, 1, -1, -1 действительны, но -1, -1, 1, 1 недействительно.
  2. ,

  3. Количество путей длиной m + n от (m-1, 0) до (0, n-1), ограниченных восточными и северными ступенями.

Эта статья предоставлена Адитьей Чаттерджи . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью и отправить ее по почте на contrib@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Путь Дейка

0.00 (0%) 0 votes