Skip to content
Snippets Groups Projects
Commit ae0f3ea6 authored by Jennifer Grisales Casadiegos's avatar Jennifer Grisales Casadiegos
Browse files

Ejercicio 2 arreglado

parent 78123a0d
No related branches found
No related tags found
No related merge requests found
%% Cell type:code id: tags:
``` python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@author: jennifer
Este programa entrega los números de una fila del
triángulo de Pascal.
"""
```
%% Cell type:markdown id: tags:
### Ejercicio No. 2: Triángulo de Pascal
%% Cell type:markdown id: tags:
Descripción de la actividad:
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.
%% Cell type:markdown id: tags:
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.
%% Cell type:code id: tags:
``` python
print("Ingrese un numero entero n:")
numero = input()
```
%% Output
Ingrese un numero entero n:
2
%% Cell type:code id: tags:
``` python
type(numero)
```
%% Output
str
%% Cell type:code id: tags:
``` python
n = int(numero)
type(n)
```
%% Output
int
%% Cell type:code id: tags:
``` python
#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
```
%% Cell type:markdown id: tags:
El número combinatorio Cm n (n sobre m) que representa el número de grupos de m elementos que pueden hacerse de entre un conjunto de n (por ejemplo, (4 sobre 2) nos da el número de parejas distintas que podrían hacerse en un grupo de cuatro personas), se encuentra en el triángulo en la fila n+1, en el lugar m+1.
%% Cell type:markdown id: tags:
Con el número, 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)!}$
%% Cell type:code id: tags:
``` python
fact(6)
```
%% Output
720
%% Cell type:code id: tags:
``` python
```
%% Cell type:code id: tags:
``` python
lisPas = []
proof = n%2
for i in range(0,n+1):
coff = fact(n)/(fact(i)*fact(n-i))
lisPas.append(coff)
print(lisPas)
```
%% Output
[1.0, 2.0, 1.0]
%% Cell type:markdown id: tags:
## Parte b
%% Cell type:markdown id: tags:
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.
%% Cell type:code id: tags:
``` python
import re
```
%% Cell type:code id: tags:
``` python
num = input("Ingrese sus numeros enteros n separados por espacios: ")
```
%% Output
Ingrese sus numeros enteros n separados por espacios: 1 2 3 4
%% Cell type:code id: tags:
``` python
#num = re.sub("-", ' ', palabras).rstrip() #con estas funciones sobre el string elimino los guiones
#y los espacios en blanco
numt=num.split(' ') #separo las palabras y las agrego a una lista llamada 'p'
print(numt)
```
%% Output
['1', '2', '3', '4']
%% Cell type:code id: tags:
``` python
type(numt)
```
%% Output
list
%% Cell type:code id: tags:
``` python
Blist = []
lisPas2 = []
```
%% Cell type:code id: tags:
``` python
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)
```
%% Output
[[1.0, 1.0], [1.0, 2.0, 1.0], [1.0, 3.0, 3.0, 1.0], [1.0, 4.0, 6.0, 4.0, 1.0]]
%% Cell type:code id: tags:
``` python
prueba= dict.fromkeys(numt)
#type(prueba)
print(prueba)
```
%% Output
{'1': None, '2': None, '3': None, '4': None}
{ {
"cells": [ "cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#!/usr/bin/env python3\n",
"# -*- coding: utf-8 -*-\n",
"\"\"\"\n",
"@author: jennifer\n",
"\n",
"Este programa entrega los números de una fila del\n",
"triángulo de Pascal.\n",
"\"\"\""
]
},
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
...@@ -302,36 +318,6 @@ ...@@ -302,36 +318,6 @@
"#type(prueba)\n", "#type(prueba)\n",
"print(prueba)" "print(prueba)"
] ]
},
{
"cell_type": "code",
"execution_count": 157,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1.0, 4.0, 6.0, 4.0, 1.0]\n"
]
}
],
"source": [
"for element in numt:\n",
" nB = int(element)\n",
" for element in Blist:\n",
" prueba[word]=element \n",
"print(prueba['1'])"
]
=======
"Created on Wed Feb 3 09:47:54 2021\n",
"\n",
"@author: jennifer\n",
"\n",
"Este programa crea una lista de palabras separadas por guiones\n",
"\"\"\"\n"
]
>>>>>>> 596658e793ac6ed4703fb04095a9df8c6b9cf156
} }
], ],
"metadata": { "metadata": {
...@@ -350,11 +336,7 @@ ...@@ -350,11 +336,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
<<<<<<< HEAD
"version": "3.8.5" "version": "3.8.5"
=======
"version": "3.7.3"
>>>>>>> 596658e793ac6ed4703fb04095a9df8c6b9cf156
} }
}, },
"nbformat": 4, "nbformat": 4,
......
...@@ -247,7 +247,7 @@ ...@@ -247,7 +247,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.7.3" "version": "3.8.5"
} }
}, },
"nbformat": 4, "nbformat": 4,
......
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