Ejercicio: 2Eva_IIT2003_T2 Mostrar un triángulo de Pascal
Para crear la matriz de Pascal en Python se usa la librería Numpy, con lo que se crea un arreglo de tamaño nxn lleno de ceros.
1 | |||||
1 | 1 | ||||
1 | 2 | 1 | |||
1 | 3 | 3 | 1 | ||
1 | 4 | 6 | 4 | 1 | |
1 | 5 | 10 | 10 | 5 | 1 |
…. | …. | …. | …. | …. | …. |
Al recorrer la matriz por cada fila f
y columna c
, si la posición matriz[f,c] es la primera columna a la izquierda (c==0) o la diagonal (f==c) se escribe 1.
Si la posición de la matriz[f,c] es debajo de la diagonal, se suman los valores de las casilla inmediata superior e izquierda superior.
pascal[f,c] = pascal[f-1,c] + pascal[f-1,c-1]
Al terminar el recorrido se tendrá la matriz con el triángulo de Pascal.
Propuesta de solución en Python: py_pdf, también en versión matlab: m_pdf
Tarea: Convertir el algoritmo a función.
Instrucciones en Python
# ICM00794-Fundamentos de Computación - FCNM-ESPOL # 2Eva_IIT2003_T2 Mostrar un triángulo de Pascal # propuesta: edelros@espol.edu.ec import numpy as np # INGRESO n = int(input('tamaño del triangulo: ')) # PROCEDIMIENTO pascal = np.zeros(shape=(n,n),dtype=int) f = 0 while (f<n): c = 0 while (c<=f): if (c==0 or c==f): pascal[f,c] = 1 else: pascal[f,c] = pascal[f-1,c] + pascal[f-1,c-1] c = c+1 f = f+1 print(pascal)
resultado del algoritmo en una matriz
tamaño del triangulo: 10 [[ 1 0 0 0 0 0 0 0 0 0] [ 1 1 0 0 0 0 0 0 0 0] [ 1 2 1 0 0 0 0 0 0 0] [ 1 3 3 1 0 0 0 0 0 0] [ 1 4 6 4 1 0 0 0 0 0] [ 1 5 10 10 5 1 0 0 0 0] [ 1 6 15 20 15 6 1 0 0 0] [ 1 7 21 35 35 21 7 1 0 0] [ 1 8 28 56 70 56 28 8 1 0] [ 1 9 36 84 126 126 84 36 9 1]] >>>