Skip to content
Snippets Groups Projects
Commit 3ca56e70 authored by Juan David Hernandez Ramirez's avatar Juan David Hernandez Ramirez
Browse files

ejercicio 2 con ejemplos en formato .ipynb

parent d9fab3a6
Branches master
No related tags found
No related merge requests found
%% Cell type:markdown id: tags:
# Juan David Hernández ejercicio2 clase 02
%% Cell type:markdown id: tags:
### 1.Realizar un programa que reciba un número, luego identifique si este número es natural o no. Si es natural entonces el programa mostrará los coeficientes del triángulo de Pascal asociados a la fila correspondiente al número ingresado
%% Cell type:markdown id: tags:
Primero importamos la librería math que contiene la función factorial la cual se va a utilizar en el desarrollo del problema
%% Cell type:code id: tags:
``` python
import math
```
%% Cell type:markdown id: tags:
Por el teorema del binomio de Newton, sabemos que los coeficientes del triángulo de Pascal corresponden a los mismos del polinomio $$ (x+y)^n $$. Los cuales vienen dados por $a_i=\begin{pmatrix}n\\i\end{pmatrix}=\frac{n!}{i!(n-i)!}$. Por lo tanto es útil definir la función combinación entre dos enteros para este problema
%% Cell type:code id: tags:
``` python
def combinado(entero1,entero2):
combinacion=math.factorial(entero1)/(math.factorial(entero2)*math.factorial(entero1-entero2))
return combinacion
```
%% Cell type:markdown id: tags:
Ahora que tenemos la función combinación definida, creamos una función que nos muestre en una lista la combinación entre n e i, donde i va de 0 hasta n. Esta lista tendrá justamente los coeficientes de la n-ésima fila del triángulo de Pascal.
%% Cell type:code id: tags:
``` python
def filapascal(n):
i=0
a=[]
while i<=n:
a.append(combinado(n,i))
i+=1
return a
```
%% Cell type:markdown id: tags:
Necesitamos también que nuestro programa identifique si el número ingresado es o no natural para poder ejecutarse. Con la función de .is_integer() sabemos si el número es un entero y si además es positivo, entonces es natural y sirve para calcular la fila del triángulo de Pascal.
%% Cell type:code id: tags:
``` python
def printfila(n):
if (float(n).is_integer())==True and n>=0:
print("La fila", n, "del triángulo de Pascal es:",filapascal(n))
else:
print("El número que ingresó no pertenece a los naturales, ingrese otro número")
```
%% Cell type:markdown id: tags:
### Ejemplo1 Calcular los números de la sexta fila del triángulo de Pascal.
%% Cell type:code id: tags:
``` python
x = float(input("introduzca un número natural: "))
```
%% Output
introduzca un número natural: 6
%% Cell type:code id: tags:
``` python
printfila(x)
```
%% Output
La fila 6.0 del triángulo de Pascal es: [1.0, 6.0, 15.0, 20.0, 15.0, 6.0, 1.0]
%% Cell type:markdown id: tags:
### Ejemplo 2 Cuando el número es un racional negativo
%% Cell type:code id: tags:
``` python
printfila(-8.5)
```
%% Output
El número que ingresó no pertenece a los naturales, ingrese otro número
%% Cell type:markdown id: tags:
## 2.Ahora queremos que se pueda introducir un número variable de filas a calcular y que los coeficientes queden dentro de una lista.
%% Cell type:markdown id: tags:
Para esto definimos una función, con la misma estructura del caso anterior, pero, cuyo argumento esté precedido por un *. Además esta función va añadiendo los coeficientes de cada fila en una nueva lista.
%% Cell type:code id: tags:
``` python
def printfilas(*numeros):
filas=[]
for n in numeros:
if (float(n).is_integer())==True and n>=0:
filas.append(filapascal(n))
else:
print("El número",n, "no pertenece a los naturales, ingrese otro número")
print (filas)
```
%% Cell type:markdown id: tags:
### Ejemplo: Calcular los coeficientes de las filas (-1,8,3.5,4,5)
%% Cell type:code id: tags:
``` python
printfilas(-1,8,3.5,4,5)
```
%% Output
El número -1 no pertenece a los naturales, ingrese otro número
El número 3.5 no pertenece a los naturales, ingrese otro número
[[1.0, 8.0, 28.0, 56.0, 70.0, 56.0, 28.0, 8.0, 1.0], [1.0, 4.0, 6.0, 4.0, 1.0], [1.0, 5.0, 10.0, 10.0, 5.0, 1.0]]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment