El Triángulo de Pascal es una disposición triangular de coeficientes binomiales que tiene aplicaciones en combinatoria, álgebra y probabilidad. Cada número en el triángulo es la suma de los dos números directamente encima de él. Los bordes exteriores del triángulo están compuestos exclusivamente por el número 1.
Sus propiedades fundamentales incluyen:
- El número en la fila
ny la posiciónk(contando desde 0) es el coeficiente binomial C(n, k). - C(n, k) = C(n-1, k-1) + C(n-1, k), donde C(n, 0) = 1 y C(n, n) = 1.
Podemos generar el Triángulo de Pascal utilizando un arreglo bidimensional (matriz) en C, calculando los valores fila por fila.
Generación del Triángulo de Pascal Alineado a la Izquierda
Para imprimir el Triángulo de Pascal alineado a la izquierda, podemos utilizar un arreglo triangulo[fila][columna] donde fila representa el número de fila (empezando desde 0) y columna representa la posición dentro de esa fila (empezando desde 0). Los elementos de la primera y última posición de cada fila son siempre 1. Los elementos intermedios se calculan como la suma de los dos elementos directamente superiores en la fila anterior.
El siguiente código C calcula y muestra el Triángulo de Pascal alineado a la izquierda para un número dado de filas:
#include <stdio.h>
#define MAX_FILAS 15 // Límite máximo para el número de filas
int main() {
int numFilas;
printf("Ingrese el número de filas para el Triángulo de Pascal (máx. %d): ", MAX_FILAS);
scanf("%d", &numFilas);
if (numFilas <= 0 || numFilas > MAX_FILAS) {
printf("El número de filas debe ser positivo y no exceder %d.\n", MAX_FILAS);
return 1;
}
int triangulo[MAX_FILAS][MAX_FILAS];
// Calcular los valores del Triángulo de Pascal
for (int fila = 0; fila < numFilas; fila++) {
for (int columna = 0; columna <= fila; columna++) {
if (columna == 0 || columna == fila) {
triangulo[fila][columna] = 1; // Los bordes siempre son 1
} else {
// Cada número es la suma de los dos números encima de él
triangulo[fila][columna] = triangulo[fila - 1][columna - 1] + triangulo[fila - 1][columna];
}
}
}
// Imprimir el Triángulo de Pascal alineado a la izquierda
printf("\nTriángulo de Pascal Alineado a la Izquierda:\n");
for (int fila = 0; fila < numFilas; fila++) {
for (int columna = 0; columna <= fila; columna++) {
printf("%4d", triangulo[fila][columna]); // Formato para alinear a la izquierda
}
printf("\n");
}
return 0;
}
Generación del Triángulo de Pascal Centrado
Para mostrar el Triángulo de Pascal de forma centrada, el proceso de cálculo de los valores del triángulo es idéntico al anterior. La única diferencia radica en la fase de impresión. Antes de imprimir los números de cada fila, necesitamos insertar un número adecuado de espacios en blanco para desplazar la fila hacia la derecha, creando así un efecto de centrado.
Si asumimos que cada número se imprime ocupando un ancho fijo (por ejemplo, 4 caracteres con %4d), entonces para centrar la figura, la cantidad de espacios iniciales para cada fila fila se puede determinar restando el ancho total de la fila a la base del triángulo y dividiendo el resultado. Con un ancho de 4 caracteres por número, se necesitan aproximadamente (numFilas - 1 - fila) * 2 espacios.
A continuación, se presenta el código C que genera y muestra el Triángulo de Pascal centrado:
#include <stdio.h>
#define MAX_FILAS 15 // Límite máximo para el número de filas
int main() {
int numFilas;
printf("Ingrese el número de filas para el Triángulo de Pascal (máx. %d): ", MAX_FILAS);
scanf("%d", &numFilas);
if (numFilas <= 0 || numFilas > MAX_FILAS) {
printf("El número de filas debe ser positivo y no exceder %d.\n", MAX_FILAS);
return 1;
}
int triangulo[MAX_FILAS][MAX_FILAS];
// Calcular los valores del Triángulo de Pascal (misma lógica que el alineado a la izquierda)
for (int fila = 0; fila < numFilas; fila++) {
for (int columna = 0; columna <= fila; columna++) {
if (columna == 0 || columna == fila) {
triangulo[fila][columna] = 1;
} else {
triangulo[fila][columna] = triangulo[fila - 1][columna - 1] + triangulo[fila - 1][columna];
}
}
}
// Imprimir el Triángulo de Pascal Centrado
printf("\nTriángulo de Pascal Centrado:\n");
for (int fila = 0; fila < numFilas; fila++) {
// Imprimir espacios iniciales para centrar
// Cada número usa 4 caracteres. Para centrar, necesitamos un desfase de (numFilas - 1 - fila) * 2 espacios.
for (int k = 0; k < (numFilas - 1 - fila) * 2; k++) {
printf(" ");
}
// Imprimir los números de la fila
for (int columna = 0; columna <= fila; columna++) {
printf("%4d", triangulo[fila][columna]);
}
printf("\n");
}
return 0;
}