Descripción de la actividad:
Parte a: Escriba una rutina en python que reciba como entrada un número entero, n, e imprima los números en la n-ésima fila del triángulo de Pascal. El programa debe verificar si el número n es entero, o arrojar un mensaje informando que ha habido un error del usuario en caso contrario.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@author: jennifer
Este programa entrega los números de una fila del
triángulo de Pascal.
"""
'\n@author: jennifer\n\nEste programa entrega los números de una fila del\ntriángulo de Pascal.\n'
"El triángulo de Pascal es un triángulo de números enteros, infinito y simétrico Se empieza con un 1 en la primera fila, y en las filas siguientes se van colocando números de forma que cada uno de ellos sea la suma de los dos números que tiene encima. Se supone que los lugares fuera del triángulo contienen ceros, de forma que los bordes del triángulo están formados por unos. Aquí sólo se ve una parte; el triángulo continúa por debajo y es infinito."
Tomado de: http://www.estadisticaparatodos.es/taller/triangulo/triangulo.html
print("Ingrese un numero entero n:")
numero = input()
n = int(numero)
Ingrese un numero entero n: 4
#Creación de una función que calcula el factorial:
def fact(n):
res=1
for c in range(1,n+1):
res = res*c
return res
Con el número combinatorio, vamos a calcular la combinatoria de la n-ésima fila. Usando la ecuación:
$C_{m}^{n} = \left(\begin{array}{c} m \\ n \end{array} \right) = \frac{m!}{n!(m-n)!}$
lisPas = [] #LisPas es una lista vacía donde vamos a guardar los valores de la n-ésima fila
for i in range(0,n+1):
coff = fact(n)/(fact(i)*fact(n-i))
lisPas.append(coff)
print(lisPas)
[1.0, 4.0, 6.0, 4.0, 1.0]
Modifique la rutina anterior para que reciba un número variable de argumentos: n1, n2, n3,... y retorne una lista cuyo primer elemento es una lista conteniendo los números en la fila n1 del triángulo de Pascal, el segundo elemento una lista con los números en la fila n2, y así sucesivamente.
import re
num = input("Ingrese sus numeros enteros n separados por espacios: ")
Ingrese sus numeros enteros n separados por espacios: 2 3 4 6 7
numt=num.split(' ') #separo cada número y lo agrego a una lista llamada 'numt'
print(numt)
['2', '3', '4', '6', '7']
Blist = [] #Blist será una lista de listas, con los n-ésimas filas
lisPas2 = []
for element in numt:
nB = int(element)
lisPas2 = []
for i in range(0,(nB+1)):
coff = fact(nB)/(fact(i)*fact(nB-i))
lisPas2.append(coff)
Blist.append(lisPas2)
print(Blist)
[[1.0, 2.0, 1.0], [1.0, 3.0, 3.0, 1.0], [1.0, 4.0, 6.0, 4.0, 1.0], [1.0, 6.0, 15.0, 20.0, 15.0, 6.0, 1.0], [1.0, 7.0, 21.0, 35.0, 35.0, 21.0, 7.0, 1.0]]
prueba= dict.fromkeys(numt)
#type(prueba)
print(prueba)