"'\\n@author: jennifer\\n\\nEste programa entrega los números de una fila del\\ntriángulo de Pascal.\\n'"
]
},
"execution_count": 36,
=======
"'\\nCreated on Wed Feb 3 09:47:54 2021\\n\\n@author: jennifer\\n\\nEste programa crea una lista de palabras separadas por guiones\\n'"
]
},
"execution_count": 1,
>>>>>>> 596658e793ac6ed4703fb04095a9df8c6b9cf156
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#!/usr/bin/env python3\n",
"# -*- coding: utf-8 -*-\n",
"\"\"\"\n",
<<<<<<< HEAD
"@author: jennifer\n",
"\n",
"Este programa entrega los números de una fila del\n",
"triángulo de Pascal.\n",
"\"\"\"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Ejercicio No. 2: Triángulo de Pascal\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Descripción de la actividad: \n",
"Escriba una rutina en python que reciba como entrada un número entero, n, e imprima los\n",
"números en la n-ésima fila del triángulo de Pascal. El programa debe verificar si el número\n",
"n es entero, o arrojar un mensaje informando que ha habido un error del usuario en caso\n",
"contrario.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\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."
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Ingrese un numero entero n:\n",
"2\n"
]
}
],
"source": [
"print(\"Ingrese un numero entero n:\")\n",
"numero = input()"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"str"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(numero)"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"int"
]
},
"execution_count": 96,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"n = int(numero)\n",
"type(n)"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [],
"source": [
"#Creación de una función que calcula el factorial:\n",
"def fact(n):\n",
" res=1\n",
" for c in range(1,n+1):\n",
" res = res*c\n",
" \n",
" return res"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"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",
"metadata": {},
"source": [
"Con el número, vamos a calcular la combinatoria de la n-ésima fila. Usando la ecuación:\n",
"\n",
"$C_{m}^{n} = \\left(\\begin{array}{c} m \\\\ n \\end{array} \\right) = \\frac{m!}{n!(m-n)!}$"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"720"
]
},
"execution_count": 98,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fact(6)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1.0, 2.0, 1.0]\n"
]
}
],
"source": [
"lisPas = []\n",
"proof = n%2\n",
"for i in range(0,n+1):\n",
" coff = fact(n)/(fact(i)*fact(n-i))\n",
" lisPas.append(coff)\n",
"print(lisPas)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Parte b"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Modifique la rutina anterior para que reciba un número variable de argumentos: n1, n2, n3,...\n",
"y retorne una lista cuyo primer elemento es una lista conteniendo los números en la fila n1\n",
"del triángulo de Pascal, el segundo elemento una lista con los números en la fila n2, y así\n",
"sucesivamente.\n"
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {},
"outputs": [],
"source": [
"import re"
]
},
{
"cell_type": "code",
"execution_count": 149,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Ingrese sus numeros enteros n separados por espacios: 1 2 3 4\n"
]
}
],
"source": [
"num = input(\"Ingrese sus numeros enteros n separados por espacios: \")"
]
},
{
"cell_type": "code",
"execution_count": 150,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['1', '2', '3', '4']\n"
]
}
],
"source": [
"#num = re.sub(\"-\", ' ', palabras).rstrip() #con estas funciones sobre el string elimino los guiones\n",
"#y los espacios en blanco\n",
"numt=num.split(' ') #separo las palabras y las agrego a una lista llamada 'p'\n",