Трикутник Паскаля

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Перші п'ять рядів трикутника Паскаля

Трикутник Паскаля — це геометрично, на зразок трикутника, розміщені біноміальні коефіцієнти. Це математичне поняття названо на честь Блеза Паскаля. Таку назву вживають переважно в західному світі, адже математики Індії, Персії, Китаю та Італії знали цей трикутник ще за кілька століть перед Паскалем.

Ряди трикутника Паскаля умовно пронумеровані згори, починаючи з нульового, й числа в нижньому ряді відносно чисел у попередньому ряді завжди розміщені ступінчасто й навскіс. Побудувати цей трикутник просто. Кожне число в кожному ряді одержуємо, додавши два числа, розміщені вгорі (зліва і справа). Якщо зліва або справа немає числа, підставляємо нуль на його місце. Наприклад, перше число в першому ряді 0 + 1 = 1, тоді як числа 1 і 3 в третьому ряді утворюють число 4 в четвертому ряді: 1 + 3 = 4.

Правило Паскаля стверджує: якщо

 {n \choose k} = \frac{n!}{k! (n-k)!}

k-й біноміальний коефіцієнт в біноміальному ряді для (x + y)n, тоді

 {n \choose k} = {n-1 \choose k-1} + {n-1 \choose k}

для будь-якого додатного цілого n і будь-якого цілого k між 0 і n.

Реалізація[ред.ред. код]

Реалізація програми створення Трикутника Паскаля[ред.ред. код]

Нижче наведено реалізацію простої програми на С++.

#include "stdafx.h"
#include <iostream>
#include <iomanip>

using namespace std;

void Print(int **Z, const int n){
	if (n >= 14){
		for (int i=0; i < n; i++){
			for (int j=0; j <= i; j++)
				cout << setw(5) << Z[i][j] ;
			cout << endl;
		}
	}
	else {
		for (int i=0; i < n; i++){
			for (int j=0; j <= i; j++)
				cout << setw(3) << Z[i][j];
			cout << endl;
		}
	}

	cout << endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
	setlocale(0,"");
	cout << "Трикутник Паскаля." << endl;
	int n;
	cout <<"Введiть кiлькiсть рiвнiв = "; cin >> n;
	int **m= new int *[n];
	for (int i=0; i < n; i++)
		m[i]=new int [n];
	
	int i=0, j=0;              
	for (int k=0; k <n; k++)
		m[i++][j]=1;

	i=1; j=1;				   
	for (int k=0; k <n-1; k++)
		m[i++][j++]=1;

	for (i=2; i < n; i++)
		for (j=1; j <=i-1; j++)
			m[i][j]=m[i-1][j-1]+m[i-1][j];

	Print(m,n);
	system("pause");

	return 0;
}

Реалізація алгоритму на С#

 1 using System;
 2 
 3 public static class PascalTriangle
 4 {      
 5   public static int[,] PascalsTriangle(int n)
 6         {
 7             int[,] triangle = new int[n,n];
 8             int i = 0, j = 0;
 9             for (int k = 0; k < n; k++)
10                 triangle[i++, j] = 1;
11             i = 1;
12             j = 1;
13             for (int k = 0; k < n - 1; k++)
14                 triangle[i++, j++] = 1;
15             for (i = 2; i < n; i++)
16                 for (j = 1; j <= i - 1; j++)
17                     triangle[i, j] = triangle[i - 1, j - 1] + triangle[i - 1, j];
18             return triangle;
19         }
20 }


Посилання[ред.ред. код]

Трикутник Паскаля на сайті MathWorld