- 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.
- 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.
- Modifique la rutina anterior para que reciba un número variable de argumentos: $\mathrm{n} 1, \mathrm{n} 2, \mathrm{n} 3, \ldots$ y retorne una lista cuyo primer elemento es una lista conteniendo los números en la fila $\mathrm{n} 1$ del triángulo de Pascal, el segundo elemento una lista con los números en la fila $\mathrm{n} 2, \mathrm{y}$ así sucesivamente.
- Modifique la rutina anterior para que reciba un número variable de argumentos: $\mathrm{n} 1, \mathrm{n} 2, \mathrm{n} 3, \ldots$ y retorne una lista cuyo primer elemento es una lista conteniendo los números en la fila $\mathrm{n} 1$ del triángulo de Pascal, el segundo elemento una lista con los números en la fila $\mathrm{n} 2, \mathrm{y}$ así sucesivamente.
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
## Resolución (1)
## Resolución (1)
Los valores para el triángulo de Pascal pueden ser encontrados mediante la siguiente fórmula:
Los valores para el triángulo de Pascal pueden ser encontrados mediante la siguiente fórmula:
$$\left(\begin{array}{l}

n \\
r
\end{array}\right)=\frac{n !}{r !(n-r) !}
$$
Donde n representa el número de la fila, r el número de la columna.
Donde n representa el número de la fila, r el número de la columna.
- Validamos si el número ingresado es un entero, con un **if().**
- Validamos si el número ingresado es un entero, con un **if().**
- Utilizamos las fórmula para encontrar los valores para la fila n-esima y mediante el uso de un **for()**.
- Utilizamos las fórmula para encontrar los valores para la fila n-esima y mediante el uso de un **for()**.
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
# triangulo de pascal
# triangulo de pascal
frommathimportfactorial
frommathimportfactorial
deftriangulo_pascal(n):
deftriangulo_pascal(n):
'''Devuelve los valores de la n-esima fila del triangulos de pascal, y ademas valida si el numero ingresado es entero'''
'''Devuelve los valores de la n-esima fila del triangulos de pascal, y ademas valida si el numero ingresado es entero'''
iftype(n)==int:# valida si el numero es entero
iftype(n)==int:# valida si el numero es entero
print('Los valores del triangulo de pascal para la fila {} son:'.format(n))
print('Los valores del triangulo de pascal para la fila {} son:'.format(n))
forjinrange(n+1):
forjinrange(n+1):
print(factorial(n)//(factorial(j)*factorial(n-j)),end="")# formula para valores del triangulo de pascal
print(factorial(n)//(factorial(j)*factorial(n-j)),end="")# formula para valores del triangulo de pascal
print()
print()
else:
else:
print('Error, el numero no es entero')
print('Error, el numero no es entero')
```
```
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
n='hola'
n='hola'
triangulo_pascal(n)
triangulo_pascal(n)
```
```
%% Output
%% Output
Error, el numero no es entero
Error, el numero no es entero
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
n=5.5
n=5.5
triangulo_pascal(n)
triangulo_pascal(n)
```
```
%% Output
%% Output
Error, el numero no es entero
Error, el numero no es entero
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
n=4
n=4
triangulo_pascal(n)
triangulo_pascal(n)
```
```
%% Output
%% Output
Los valores del triangulo de pascal para la fila 4 son:
Los valores del triangulo de pascal para la fila 4 son:
1 4 6 4 1
1 4 6 4 1
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
## Resolución (2)
## Resolución (2)
- Modificamos la función de tal forma que no imprima los valores si no que los almacene en una lista.
- Modificamos la función de tal forma que no imprima los valores si no que los almacene en una lista.
- Creamos una nueva rutina que por medio de un **for()** recorra todos los valores ingresados y retorne sus correspondiente valores en el triángulo de pascal y los guarde en una lista, por lo que el resultado será una lista de listas.
- Creamos una nueva rutina que por medio de un **for()** recorra todos los valores ingresados y retorne sus correspondiente valores en el triángulo de pascal y los guarde en una lista, por lo que el resultado será una lista de listas.
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
deftriangulo_pascal_lista(n):
deftriangulo_pascal_lista(n):
'''Devuelve los valores de la n-esima fila del triangulos de pascal en una lista,
'''Devuelve los valores de la n-esima fila del triangulos de pascal en una lista,
ademas valida si el numero ingresado es entero'''
ademas valida si el numero ingresado es entero'''
lista=[]
lista=[]
iftype(n)==int:# valida si el numero es entero
iftype(n)==int:# valida si el numero es entero
forjinrange(n+1):
forjinrange(n+1):
x=factorial(n)//(factorial(j)*factorial(n-j))# formula para valores del triangulo de pascal
x=factorial(n)//(factorial(j)*factorial(n-j))# formula para valores del triangulo de pascal
lista.append(x)
lista.append(x)
#print(lista)
#print(lista)
else:
else:
print('Error, el numero no es entero')
print('Error, el numero no es entero')
returnlista
returnlista
defentrada(*numeros):
defentrada(*numeros):
'''Recibe numeros y retorna los valores del triangulo de pascal para las filas correspondientes
'''Recibe numeros y retorna los valores del triangulo de pascal para las filas correspondientes