Pascali kolmnurk – valem, mustrid ja näited

Mis on Pascali kolmnurk?

Pascali kolmnurk on kolmnurkne arvude massiiv, millele järgneb konkreetne muster ja ühendus sellele eelneva reaga. Selle leiutas Blaise Pascal. See kolmnurk algab esimeses reas ühe elemendiga. Pärast seda algab ja lõpeb iga rida numbriga 1.

Pascali kolmnurk

Pascali kolmnurga ajalugu

Hiina raamat “Üheksa peatükki matemaatilisest kunstist” sisaldab üht esimestest Pascali kolmnurga näidetest. Lisaks sisaldab see mõningaid samu mustreid ja omadusi, mida tänapäeval kolmnurkades leidub.

Pascal oli üks paljudest inimestest Euroopas, kes kolmnurka uuris. Teised matemaatikud olid enne teda uurinud sarnaseid kolmnurkseid arvude massiive.

Pascali kolmnurga ehitamine

Pascali kolmnurga konstrueerimine on lihtne. Ainus asi, mida peate meeles pidama, on see, et rida algab ja lõpeb 1-ga. Ülejäänud numbrite reegel on järgmine:

Iga rea ​​r ja veeru c puhul on arv rea r-1 veergude c-1 ja c summa.

Siin

  • r = 3,4,5….
  • n ja c = 2,3,4,…r-1.

Siin on sammud Pascali kolmnurga loomiseks:

Step 1) Alustame kahe rea täitmisega.

Pascali kolmnurga ehitamine

Step 2) Kolmanda rea ​​teine ​​element on teise rea esimese ja teise numbri summa.

Pascali kolmnurga ehitamine

Step 3) Neljas rida algab tähega 1. Teine arv on 3, mis on 1 ja 2 summa (sinisega esile tõstetud).

Allolev pilt näitab, kuidas täita neljandat rida:

Pascali kolmnurga ehitamine

Step 4) Viies rida koosneb viiest numbrist. Me teame juba varasemate sammude järgi ridade täitmise mustrit.

Pascali kolmnurga ehitamine

Pascali kolmnurga valem – binoomkoefitsient

Binoomkoefitsient on arv, mis väljendab erinevaid meetodeid k elemendi alamhulga valimiseks n elemendist koosnevast kogumist. Sageli kirjutatakse see kui "C(n,k)" või "n vali k".

Binoomkoefitsient on määratletud kui

Pascali kolmnurga valem – binoomkoefitsient

"!" tähistab "faktoriaalset".

n! = n.(n-1). (n-2)…3.2.1

Näiteks

5! = 5.4.3.2.1

= 120

Ütleme nii, et C(5,3) või 5 vali 3 = 5! / 3!(5-3)!

= 120/(12)

= 10

1. meetod: Pascali kolmnurga ehitamine eelmise rea järgi

Selle protseduuri sammud on samad, mis Pascali kolmnurgas. Oletame, et tahame luua kuni seitsmerealise Pascali kolmnurga.

Selle täitmise sammud on järgmised:

Step 1) Alusta ülemist rida 1-ga.

Step 2) Rea "r" puhul on üksus "c" korrutis "c-1" ja "c" rea "r-1" number.

Step 3) Rea esimene ja viimane number on alati 1.

Pascali kolmnurga loomiseks peame järgima neid kolme lihtsat sammu.

C++ Pascali kolmnurga kood eelmise rea järgi

#include <bits/stdc++.h>
using namespace std;
void printRow(int n)
{
  int numbers[n][n];
  for (int row = 0; row < n; row++)
  {
    for (int col = 0; col <= row; col++)
    {
      if (col == 0 || col == row)
      {
        numbers[row][col] = 1;
      }
      else
      {
        numbers[row][col] = numbers[row - 1][col - 1] + numbers[row - 1][col];
      }
      cout << numbers[row][col] << "\t";
    }
    cout << endl;
  }
}
int main()
{
  int n;
  cout << "How many rows: ";
  cin >> n;
  printRow(n);
}

Väljund:

How many rows: 7
1
1       1
1       2       1
1       3       3       1
1       4       6       4       1
1       5       10      10      5       1
1       6       15      20      15      6       1

Python Pascali kolmnurga valemi kood eelmise rea järgi

def printRow(n):
    numbers = [[0 for row in range(n)]
               for col in range(n)
               ]
    for row in range(len(numbers)):
        for col in range(0, row+1):
            if row == col or col == 0:
                numbers[row][col] = 1
            else:
                numbers[row][col] = numbers[row-1][col-1]+numbers[row-1][col]

            print(numbers[row][col],end="\t")
        print("\n")
n = int(input("How many rows: "))
printRow(n)

Pascali kolmnurga näidisväljund:

How many rows: 7
1
1       1
1       2       1
1       3       3       1
1       4       6       4       1
1       5       10      10      5       1
1       6       15      20      15      6       1

Keerukuse analüüs

A kahemõõtmeline massiiv rakendamisel kasutati. Arvestades, et N on Pascali kolmnurga ridade arv. Selleks on vaja N2 ühiku ruumid. Seetõttu on O ruumi keerukus (N2).

Funktsioonis on kaks tsüklit ja iga tsükkel jookseb "N" korda. Seega on ka ajaline keerukus PEAL2) või ruudus aja keerukus.

2. meetod: Pascali kolmnurga loomine binoomkoefitsiendi arvutamise teel

Me saame lihtsalt binoomkoefitsiendi abil tuletada Pascali kolmnurga arvud. Siin on diagramm:

Pascali kolmnurga ehitamine binoomkoefitsiendi arvutamise teel

Siin on sammud Pascali kolmnurga loomiseks binoomarvu arvutamise teel:

Step 1) Ülemine rida on C(0,0). Kasutades ülaltoodud valemit binoomkoefitsiendi jaoks, C(0,0) = 1. Kuna 0! = 1.

Step 2) Rea “i” puhul on “i” elemente kokku. Iga üksus arvutatakse C(n,r), kus n on i-1.

Step 3) Korrake 2. sammu Pascali kolmnurga jaoks soovitud ridade arvu jaoks.

C++ Kodeerige Pascali kolmnurk binoomkoefitsiendi järgi

#include <iostream>
using namespace std;
int factorial(int n)
{
    int result = 1;
    for (int i = 1; i <= n; i++)
    {
        result *= i;
    }
    return result;
}
int binomialCoefficient(int n, int r)
{
    int result = 1;
    if (r > n)
    {
        return -1;
    }
    result = factorial(n) / (factorial(r) * factorial(n - r));
    return result;
}
void printPascalTriangle(int row)
{
    for (int i = 0; i <= row; i++)
    {
        for (int j = 0; j <= i; j++)
        {
            cout << binomialCoefficient(i, j) << "\t";
        }
        cout << endl;
    }
}
int main()
{
    int n;
    cout << "Enter row number: ";
    cin >> n;
    printPascalTriangle(n);
}

Väljund:

Enter row number: 9
1
1	1
1	2	1
1	3	3	1
1	4	6	4	1
1	5	10	10	5	1
1	6	15	20	15	6	1
1	7	21	35	35	21	7	1
1	8	28	56	70	56	28	8	1
1	9	36	84	126	126	84	36	9	1

Python Kodeerige Pascali kolmnurk binoomkoefitsiendi järgi

def factorial(n):
    result = 1
    for i in range(1,n+1):
        result*=i
    return result
def binomialCoefficient(n,r):
    result =1
    if r>n:
        return None
    result = factorial(n) / (factorial(r) * factorial(n - r))
    return int(result)
def printPascalTriangle(row):
    for i in range(row+1):
        for j in range(i+1):
            print(binomialCoefficient(i, j), end="\t")
        print()
# print(binomialCoefficient(3, 2))
n = int(input("Enter row number: "))
printPascalTriangle(n)

Pascali kolmnurga näidisväljund:

Enter row number: 8
1
1       1
1       2       1
1       3       3       1
1       4       6       4       1
1       5       10      10      5       1
1       6       15      20      15      6       1
1       7       21      35      35      21      7       1
1       8       28      56      70      56      28      8       1

Keerukuse analüüs

Rakendamisel kasutati kolme silmust. Üks tsükkel on mõeldud binoomkoefitsiendi arvutamiseks ja ülejäänud kaks kõigi ridade arvude loomiseks. Seoses ridade arvuga on meil kolm tsüklit, mis käivitavad "n" korda. Järelikult on üldine ajaline keerukus 0 (n3).

Ruumi keerukus on nüüd pidev, kuna me ei hoia andmeid salvestusruumis. Programm arvutab elemendi ja see trükitakse reas. Ruumi keerukus väheneb seejärel 0-ni (1).

3. meetod: Pascali kolmnurga koostamine modifitseeritud binoomkoefitsiendi järgi

Eelmises tehnikas oleme juba näinud, kuidas kasutada Pascali kolmnurga iga elemendi arvutamiseks binoomkoefitsienti. See lähenemisviis määrab C(n,r) väärtusest C. (n, r-1). See lihtsustab asju ühe tellimusega.

Siin on sammud Pascali kolmnurga loomiseks modifitseeritud binoomkoefitsiendi järgi:

Step 1) Alustage esimest rida 1-ga

Step 2) Arvutage C(n,r), kus "n" on rea number ja "r" on veerg või element. Määrake väärtus muutujas C.

Step 3) C(n,k) arvutamiseks on see C*(nk)/k. Nüüd määrake see väärtus C-le.

Step 4) Jätkake sammu 3, kuni "k" jõuab rea lõppu. Pärast iga iteratsiooni suurendage K väärtust ühe võrra.

C++ Pascali kolmnurga kood modifitseeritud binoomkoefitsiendi järgi

#include <bits/stdc++.h>
using namespace std;
void printpascalTriangle(int n)
{
  for (int row = 1; row <= n; row++)
  {
    int previous_coef = 1;
    for (int col = 1; col <= row; col++)
    {
      cout << previous_coef << "\t";
      previous_coef = previous_coef * (row - col) / col;
    }
    cout << endl;
  }
}

int main()
{
  int n;
  cout << "How many rows: ";
  cin >> n;
  printpascalTriangle(n);
}

Väljund:

How many rows: 5
1
1       1
1       2       1
1       3       3       1
1       4       6       4       1

Python Pascali kolmnurga kood modifitseeritud binoomkoefitsiendiga

def printpascalTriangle(n):
    for row in range(1, n+1):
        previous_coef = 1
        for col in range(1, row+1):
            print(previous_coef, end="\t")
            previous_coef = int(previous_coef*(row-col)/col)
        print()
n = int(input("How many rows: "))
printpascalTriangle(n)

Pascali kolmnurga mustrite väljund:

How many rows: 5
1
1       1
1       2       1
1       3       3       1
1       4       6       4       1

Keerukuse analüüs

Rakendusel on kaks silmust. Iga silmus jookseb maksimaalselt "n" aja, kus "n" tähendab ridade arvu pascali kolmnurgas. Niisiis, ajaline keerukus on Peal2), ruudus aeg.

Mis puudutab ruumi keerukust, siis me ei vajanud salvestamiseks massiivi. Eelmise binoomkoefitsiendi säilitamiseks kasutasime lihtsalt ühte muutujat. Seega vajasime lihtsalt ühte lisaruumi. Ruumi keerukus muutus O (1).

Pascali kolmnurga rakendamine

Siin on mõned Pascali kolmnurga rakendused:

Binoomlaiendused: Binoomlaienduste koefitsiendi saame määrata Pascali kolmnurgast. Siin on näide:

(x + y)0 1
(x + y)1 1.x + 1.y
(x + y)2 1x2 + 2xy + 1y2
(x + y)3 1x3 + 3x2ja + 3xy2 + 1y3
(x + y)4 1x4 + 4x3ja + 6x2y2 + 4xy3 + 1y4

Kombinatsioonide arvutamine: Oleme näinud, et Pascali kolmnurga elemendid on samaväärsed binoomkoefitsientidega. Näiteks kui teil on 6 palli ja teil on palutud valida 3 palli, siis see nii on 6C3. Või leiate numbri Pascali kolmnurga 3. rea 6. elemendist.

Huvitavad faktid Pascali kolmnurga kohta

Siin on mõned faktid, mis Pascali kolmnurga kohta huvitavad:

  • Kõikide reas olevate elementide summa on alati 2 aste.

Faktid Pascali kolmnurga kohta

  • Ridade elementide diagonaalselt summa genereerib Fibonacci jada.

Faktid Pascali kolmnurga kohta

kokkuvõte

  • Pascali kolmnurk annab binoomlaienduste koefitsiendid.
  • Pascali kolmnurga iga rida algab ja lõpeb numbriga 1. Vaheväärtused on eelmise rea kahe elemendi summa.
  • Pascali kolmnurga kõigi elementide diagonaalne liitmine annab teile Fibonacci järjestus.
  • Pascali kolmnurga saab genereerida ka binoomkoefitsientidega.