• Facebook
  • Jaunumi
  • Uzdevumi
  • Iesūtījumi
  • Teorija
  • Sacensības
  • Reitings
  • Mācies JavaScript
  1. CleverCode
CleverCode
  • Sveiks ciemiņ
  • Facebook
  • Jaunumi
  • Uzdevumi
  • Iesūtījumi
  • Teorija
  • Sacensības
  • Reitings
  • Mācies JavaScript

Katalāna skaitļi

Katalāna skaitļi ir skaitļu virkne, kuras n-to elementu apzīmē ar Cat(n) un Cat(n) ir unikālu bināro koku skaits ar n virsotnēm. Katalāna skaitļus var aprēķināt ar rekursīvu funkciju 1. attēlā. Programmas piemērs ir redzams 1. programmā.

Katalāna skaitļu formula

1. attēls - Katalāna skaitļu formula.

#include <iostream>
using namespace std;

int M[11];

void calc_catalan(int *M, int N)
{
    M[0] = 1;
    for (int i = 1; i <= N; ++i)
        M[i] = ((2 * (2 * N + 1)) / (N + 2)) * M[i - 1];
}

int Cat(int n)
{
    return M[n];
}

int main()
{
    calc_catalan(M, 10);

    // Cik unikālus bināros kokus var izveidot ar 10 virsotnēm.
    cout << Cat(10) << endl;

    return 0;
}
 

1. programma - Katalāna skaitļu formulas realizācija.

Katalāna skaitļiem ir vairāki pielietojumi, tie nav tikai unikālo bināro koku skaits, bet arī:

  • Cik korektas iekavu izteiksmes var izveidot no N * 2 iekavām.
  • Cik trijstūros var sadalīt N + 2 daudzstūri trijstūros novelkot taisnes starp virsotnēm, lai tās nekrustotos.
  • Un citi pielietojumi, kurus var izlasīt zemākajā saitē.

Vairāk informācija

© 2025 CleverCode
Par mums | Palīdzība | Vērtēšanas sistēma
Informējam, ka portālā tiek izmantotas sīkdatnes (angļu val. "cookies"). Turpinot lietot šo portālu, Jūs piekrītat, ka mēs uzkrāsim un izmantosim sīkdatnes Jūsu ierīcē.
Uzzināt vairāk