El triángulo de Pascal es un patrón del triángulo que se basa en nCr , a continuación se muestra la representación pictórica del triángulo de Pascal.
Ejemplo:
Input: N = 5 Output: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
Método 1: usando la fórmula nCr , es decir, n!/(nr)!r!
Después de usar la fórmula nCr, la representación pictórica se convierte en:
0C0 1C0 1C1 2C0 2C1 2C2 3C0 3C1 3C2 3C3
Algoritmo:
- Tome un número de filas para imprimir, supongamos que es n
- Realice la iteración exterior i de 0 a n veces para imprimir las filas.
- Haga una iteración interna para j de 0 a (N – 1).
- Imprima un solo espacio en blanco ” “.
- Cierre el bucle interno (bucle j) // es necesario para el espacio a la izquierda.
- Haga una iteración interna para j de 0 a i.
- Imprima nCr de i y j.
- Cierra el bucle interior.
- Imprime el carácter de nueva línea (\n) después de cada iteración interna.
Implementación:
Python3
# Print Pascal's Triangle in Python from math import factorial # input n n = 5 for i in range(n): for j in range(n-i+1): # for left spacing print(end=" ") for j in range(i+1): # nCr = n!/((n-r)!*r!) print(factorial(i)//(factorial(j)*factorial(i-j)), end=" ") # for new line print()
Producción:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
Complejidad temporal: O(N 2 )
Método 2: podemos optimizar el código anterior mediante el siguiente concepto de coeficiente binomial, la i-ésima entrada en una línea numérica es el coeficiente binomial C (línea, i) y todas las líneas comienzan con el valor 1. La idea es calcular C(línea, i) usando C(línea, i-1) .
C(line, i) = C(line, i-1) * (line - i + 1) / i
Implementaciones:
Python3
# Print Pascal's Triangle in Python # input n n = 5 for i in range(1, n+1): for j in range(0, n-i+1): print(' ', end='') # first element is always 1 C = 1 for j in range(1, i+1): # first value in a line is always 1 print(' ', C, sep='', end='') # using Binomial Coefficient C = C * (i - j) // j print()
Producción:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
Complejidad temporal: O(N 2 )
Método 3: Este es el enfoque más optimizado para imprimir el triángulo de Pascal, este enfoque se basa en potencias de 11.
11**0 = 1 11**1 = 11 11**2 = 121 11**3 = 1331
Implementación:
Python3
# Print Pascal's Triangle in Python # input n n = 5 # iterarte upto n for i in range(n): # adjust space print(' '*(n-i), end='') # compute power of 11 print(' '.join(map(str, str(11**i))))
Producción:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
Complejidad de tiempo: O(N)
Sin embargo, este enfoque es aplicable hasta n=5 solamente.
Publicación traducida automáticamente
Artículo escrito por pradiptamukherjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA