Pascalin kolmion kaava esimerkkeineen
โก รlykรคs yhteenveto
Pascalin kolmio on kolmiomainen lukujรคrjestely, jossa jokainen arvo on yhtรค suuri kuin kahden sen ylรคpuolella olevan luvun summa. Tรคmรค paljastaa kombinatoriikassa, binomimaisessa laajennuksessa ja todennรคkรถisyydessรค syvรคllisiรค malleja, jotka ovat kiehtoneet matemaatikkoja vuosisatojen ajan.

Mikรค on Pascalin kolmio?
Pascalin kolmio on kolmionmuotoinen numerotaulukko, joka noudattaa yksinkertaista kaavaa ylรคpuolella olevan rivin perusteella. Ranskalainen matemaatikko Blaise Pascal teki sen tunnetuksi 17-luvulla. Kolmio alkaa yhdellรค numerolla "1" ylรคreunassa, ja jokainen seuraava rivi alkaa ja pรครคttyy myรถs numeroon "1".
Elegantin muotonsa lisรคksi Pascalin kolmio sisรคltรครค syviรค matemaattisia yhteyksiรค. Se on lรคheisesti sidoksissa binomilauseeseen, kombinatoriseen laskentaan ja todennรคkรถisyyslaskentaan, minkรค vuoksi sitรค kรคytetรครคn algebran, tilastotieteen ja tietojenkรคsittelytieteen luokkahuoneissa maailmanlaajuisesti.
Pascalin kolmion historia
Vaikka kolmio on nimetty Blaise Pascalin mukaan, se on vuosisatoja vanhempi kuin hรคn. Kiinalainen matemaattinen teksti โYhdeksรคn lukua matemaattisesta taiteestaโ sisรคltรครค yhden varhaisimmista tunnetuista esimerkeistรค, ja se esittรครค monia samoja kuvioita, joita kรคytรคmme tรคnรคkin pรคivรคnรค.
Persialainen matemaatikko Al-Karaji ja intialainen oppinut Pingala tutki myรถs samankaltaisia โโtaulukoita. Pascal formalisoi kolmion ominaisuudet vuonna 1654 kirjoittamassaan tutkielmassa โTraitรฉ du triangle arithmรฉtiqueโ, joka antoi rakenteelle sen nykyisen nimen lรคnsimaisessa matematiikassa.
Pascalin kolmion rakentaminen
Pascalin kolmion muodostaminen on suoraviivaista. Ainoa muistettava sรครคntรถ on, ettรค jokainen rivi alkaa ja pรครคttyy lukuun 1, ja kaikki muut luvut muodostetaan sitรค ylemmรคstรค rivistรค.
Minkรค tahansa rivin r ja sarakkeen c arvo on yhtรค suuri kuin rivin r-1 sarakkeiden c-1 ja c lukujen summa.
Tรครคllรค
- r = 3, 4, 5, โฆ
- n ja c = 2, 3, 4, โฆ, rโปยน.
Tรคssรค ovat vaiheet Pascalin kolmion rakentamiseksi:
Vaihe 1) Aloita tรคyttรคmรคllรค kaksi ensimmรคistรค riviรค.
Vaihe 2) Kolmannen rivin toinen alkio on toisen rivin ensimmรคisen ja toisen luvun summa.
Vaihe 3) Neljรคs rivi alkaa numerolla โ1โ. Toinen luku on 3, joka on lukujen 1 ja 2 summa (korostettu sinisellรค).
Alla oleva kuva nรคyttรครค, miten neljรคs rivi tรคytetรครคn:
Vaihe 4) Viides rivi koostuu viidestรค numerosta. Tiedรคmme jo rivien tรคyttรคmiskaavan aiemmista vaiheista.
Pascalin kolmiokaava โ binomiaalinen kerroin
Binomikerroin laskee, kuinka monella tavalla n alkion joukosta voidaan valita k alkion osajoukko. Se kirjoitetaan yleensรค muodossa โC(n, k)โ tai โn valitsee kโ.
Binomikerroin mรครคritellรครคn seuraavasti:
Symboli โ!โ tarkoittaa luvun kertomaa.
n! = nโป(n-1)โป(n-2)โฆ3.2.1
Esimerkiksi
5! = 5.4.3.2.1
= 120
Joten C(5, 3) eli โ5 valitsee 3โ = 5! / 3! (5 - 3)!
= 120/12
= 10
Menetelmรค 1: Pascalin kolmion rakentaminen edellisen rivin avulla
Tรคssรค menetelmรคssรค piirsimme kolmion manuaalisesti. Oletetaan, ettรค haluamme luoda Pascalin kolmion, jossa on enintรครคn seitsemรคn riviรค.
Toimi seuraavasti:
Vaihe 1) Aloita ylin rivi numerolla "1".
Vaihe 2) Rivillรค โrโ elementti โcโ on rivin โr-1โ sarakkeen โc-1โ ja sarakkeen โcโ summa.
Vaihe 3) Kunkin rivin ensimmรคinen ja viimeinen numero on aina "1".
Nรคitรค kolmea yksinkertaista vaihetta noudattamalla voimme systemaattisesti rakentaa koko kolmion.
C++ Code Pascalin kolmion edellisen rivin kohdalla
#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); }
lรคhtรถ:
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 Code Pascal-kolmion kaavan edellisen rivin mukaan
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)
Pascalin kolmion esimerkkitulos:
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
Monimutkaisuusanalyysi
A kaksiulotteinen matriisi kรคytetรครคn tรคssรค toteutuksessa. Koska N on Pascalin kolmion rivien lukumรครคrรค, tรคmรค vaatii N:n2 yksikkรถavaruudet. Siksi avaruuskompleksisuus on O(N2).
Funktio kรคyttรครค kahta sisรคkkรคistรค silmukkaa, joita kumpaakin suoritetaan jopa N kertaa. Joten aikavaativuus on myรถs PรรLLร2)tai neliรถity aikakompleksisuus.
Menetelmรค 2: Pascalin kolmion rakentaminen laskemalla binomikerroin
Voimme johtaa Pascalin kolmion luvut suoraan binomikertoimien avulla. Alla oleva kaavio havainnollistaa suhdetta:
Tรคssรค ovat vaiheet Pascalin kolmion rakentamiseksi laskemalla binomikerroin:
Vaihe 1) Ylin rivi on C(0, 0). Yllรค olevan kaavan avulla C(0, 0) = 1, koska 0! = 1.
Vaihe 2) Rivillรค โiโ on yhteensรค โiโ elementtiรค. Jokainen elementti lasketaan muodossa C(n, r), jossa n on i-1.
Vaihe 3) Toista vaihe 2 niin monelle Pascalin kolmion riville kuin haluat luoda.
C++ Code Pascalin kolmio binomikertoimen avulla
#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); }
lรคhtรถ:
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 Code Pascalin kolmio binomikertoimen avulla
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)
Pascalin kolmion esimerkkitulos:
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
Monimutkaisuusanalyysi
Tรคssรค toteutuksessa kรคytetรครคn kolmea silmukkaa: yksi binomikertoimen laskemiseen ja kaksi muuta jokaisen rivin ja sarakkeen lรคpikรคymiseen. Rivien lukumรครคrรคn suhteen kaikki kolme silmukkaa suoritetaan jopa โnโ kertaa. Nรคin ollen kokonaisaikakompleksisuus on O(n3).
Tilakompleksisuus on vakio, koska emme tallenna mitรครคn vรคlituloksia. Ohjelma laskee jokaisen elementin lennossa ja tulostaa sen rivin sisรคllรค, joten tilakompleksisuus pienenee muotoon O (1).
Menetelmรค 3: Pascalin kolmion rakentaminen modifioidulla binomikertoimella
Edellisessรค tekniikassa kรคytimme binomikertoimen kaavaa jokaisen elementin laskemiseen. Muokattu lรคhestymistapa johtaa C(n, r):n suoraan C(n, r-1):stรค, mikรค vรคhentรครค tyรถtรค yhdellรค kertaluokalla.
Tรคssรค ovat vaiheet Pascalin kolmion rakentamiseksi muokatun binomikertoimen avulla:
Vaihe 1) Aloita ensimmรคinen rivi numerolla "1".
Vaihe 2) Laske C(n, r), jossa โnโ on rivinumero ja โrโ on sarakeindeksi. Anna tรคmรค arvo muuttujalle C.
Vaihe 3) Seuraavan kertoimen laskemiseen kรคytรค kaavaa C * (n โ k) / k. Anna tรคmรค uusi arvo takaisin C:lle.
Vaihe 4) Jatka vaihetta 3, kunnes โkโ saavuttaa rivin lopun. Jokaisen iteraation jรคlkeen lisรครค k:n arvoa yhdellรค.
C++ Code Pascalin kolmiolle muokatulla binomikertoimella
#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); }
lรคhtรถ:
How many rows: 5 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
Python Code Pascalin kolmiolle muokatulla binomikertoimella
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)
Pascalin kolmiomallien lรคhtรถ:
How many rows: 5 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
Monimutkaisuusanalyysi
Toteutuksessa kรคytetรครคn kahta silmukkaa, joita kumpaakin suoritetaan enintรครคn โnโ kertaa, missรค โnโ on kolmion rivien lukumรครคrรค. Aikavaativuus on siis Pรครคllรค2), neliรถity aika.
Tilakompleksisuuden osalta emme tarvitse tallennukseen taulukkoa. Kรคytรคmme vain yhtรค muuttujaa sรคilyttรครคksemme edellisen binomikertoimen, joten tarvitsemme vain yhden ylimรครคrรคisen tilan. Tilakompleksisuus on siis O (1).
Pascalin kolmion soveltaminen
Tรคssรค on joitakin Pascalin kolmion kรคytรคnnรถn sovelluksia:
Binomilaajennukset: Minkรค tahansa binomimallisen laajennuksen kertoimet voidaan lukea suoraan Pascalin kolmiosta. Tรคssรค on esimerkki:
| (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 |
Yhdistelmien laskeminen: Pascalin kolmion alkiot vastaavat suoraan binomikertoimia. Esimerkiksi, jos sinulla on 6 palloa ja haluat valita 3, vastaus on 6C3Lรถydรคt kyseisen arvon Pascalin kolmion kuudennen rivin kolmannesta elementistรค.
Todennรคkรถisyys: Pascalin kolmiota kรคytetรครคn laajalti todennรคkรถisyyksien laskemiseen kolikonheitoissa, noppaongelmissa ja muissa kombinatorisissa tapahtumissa, joissa jokainen tulos vastaa binomijakaumaa.
Mielenkiintoisia faktoja Pascalin kolmiosta
Tรคssรค on joitain mielenkiintoisia faktoja Pascalin kolmiosta:
- Minkรค tahansa rivin kaikkien alkioiden summa on aina kahden potenssi.
- Rivien diagonaalisummat muodostavat Fibonaccin jonon.
- Jokainen rivi vastaa kertoimia (a+b)-laajennuksessan.
- Jos varjostat vain parittomat luvut, tuloksena oleva luku muodostaa Sierpinskin kolmion fraktaalin.









