Matemáticasc++triángulo de Pascalcombinatoriacoeficientes binomiales
Triángulo de Pascal
Construye y usa el triángulo de Pascal para combinatoria y más
OOI Oaxaca9 de febrero de 20263 min read
¿Qué es el Triángulo de Pascal?
Es un triángulo numérico donde cada número es la suma de los dos de arriba:
Fila 0: 1
Fila 1: 1 1
Fila 2: 1 2 1
Fila 3: 1 3 3 1
Fila 4: 1 4 6 4 1
Fila 5: 1 5 10 10 5 1
La magia: El número en la fila , columna es exactamente (combinaciones de n en k).
Construcción
const int MAXN = 1005;
long long pascal[MAXN][MAXN];
void construir(int n) {
for (int i = 0; i <= n; i++) {
pascal[i][0] = 1;
for (int j = 1; j <= i; j++) {
pascal[i][j] = pascal[i-1][j-1] + pascal[i-1][j];
}
}
}
Con módulo:
const int MOD = 1e9 + 7;
void construirMod(int n) {
for (int i = 0; i <= n; i++) {
pascal[i][0] = 1;
for (int j = 1; j <= i; j++) {
pascal[i][j] = (pascal[i-1][j-1] + pascal[i-1][j]) % MOD;
}
}
}
Propiedades del triángulo
- Bordes:
- Simetría:
- Suma de fila:
- Identidad de Pascal:
- Diagonal: La segunda diagonal es 1, 2, 3, 4, 5… (números naturales)
- Tercera diagonal: 1, 3, 6, 10, 15… (números triangulares)
Aplicaciones
Potencias de binomios
Los coeficientes son exactamente la fila del triángulo:
- → fila 3: 1, 3, 3, 1
Caminos en cuadrícula
da el número de caminos de a .
Sumas de prefijos del triángulo
La suma de una columna del triángulo tiene una fórmula cerrada:
Ejercicio de práctica
Imprime las primeras N filas del Triángulo de Pascal.
Entrada: 6
Salida:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Ver solución
#include <iostream>
using namespace std;
long long pascal[105][105];
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
pascal[i][0] = 1;
for (int j = 1; j <= i; j++) {
pascal[i][j] = pascal[i-1][j-1] + pascal[i-1][j];
}
for (int j = 0; j <= i; j++) {
if (j > 0) cout << " ";
cout << pascal[i][j];
}
cout << endl;
}
return 0;
}
