¿Han escuchado eso de que en el triángulo de pascal cada número es la suma de los dos que están sobre él? ¡PUES LES HAN MENTIDO!, eso no es más que una coincidencia y la forma mas fácil de escribirlo en el pizarrón. En realidad el triángulo de pascal es una matriz donde cada elemento es el coeficiente binomial o combinación de sus coordenadas. Las pruebas.
El caso es que para obtener el triángulo de pascal en c++ hay muchas formas, pero la que está a continuación yo la considero especial porque está basada en su propia definición.
#include<iostream> using namespace std; int factorial(int n) { if(n<2) return 1; else return n * factorial(n-1); } int combinacion(int n, int r) { if(r==1) return n; else { if(n==r) return 1; else return factorial(n) / (factorial(r) * factorial(n - r)); } } int main() { for(int i=0; i<=6; i++) { for(int ii=0; ii<=i; ii++) cout << combinacion(i, ii) << " "; cout << endl; } return 0; }
Vamos analizándolo:
1. La primera función es para obtener el factorial de forma recursiva.
2. La segunda es para obtener el coeficiente binomial o combinación de dos números, es en esencia esta fórmula:
C(n,r) = n! / r!(n-r)!
Mas información sobre coeficientes binomiales.
3. En el main hay dos ciclos que se encargan de armar una matriz para obtener el coeficiente binomial de cada uno de ellos.
- La primera pareja de numeros es (0,0) y su combinación es 1. Nuestro primer numero del triangulo de pascal.
- La siguiente es (1,0) y luego (1,1) cuyas combinaciones son 1 y 1. Segunda lÃnea.
- Luego tenemos (2,0) (2,1) y (2,2) cuyas combinaciones son 1, 2 y 1. Tercera linea
- Y asà seguimos obteniendo nuestras lÃneas.
Y pues asà es, el que me diga que no tiene forma de triángulo está ciego, porque si es triángulo, lo que pasa es que no es isósceles.