sábado, 24 de octubre de 2020

Validar si una Palabra es un Palíndromo Utilizando Python

Hola a todos, hoy vamos a construir un script para resolver un ejercicio clásico de programación y es identificar si una palabra es o no un palíndromo. Un palíndromo, es una palabra que si la lees al derecho o al revés es idéntica. Ejemplos de esto son: anna, reconocer, radar, sometemos etc.

Para poder ejecutar esta tarea, vamos a escribir un script en python, que solicite al usuario ingresar una palabra y que la compare con la misma palabra, pero invirtiendo el orden de las letras mediante un slicing:

Cuando ejecutamos el script en nuestra plataforma colab, tenemos:



Hasta la próxima.

jueves, 22 de octubre de 2020

Calcular la Aproximación de PI (3.141592) Mediante la Serie Infinita de Leibniz con Python

Hola a todos, hoy vamos a generar un nuevo script que nos permita por medio de una serie infinita, llegar a una aproximación del número PI. En este caso, vamos a trabajar con la serie de Leibniz.

Esta serie se define como:

Como pueden ver, esta serie nos permite llegar a la aproximación de Pi cuartos.

La serie se puede expresar de la siguiente forma:

Entonces, vamos a escribir un programa en Python con el que podamos realizar una iteración que nos permita obtener la sumatoria desde el término cero hasta infinito (en nuestro caso, vamos a llegar hasta el término 10 millones)

Mediante un for, vamos a realizar las iteraciones y utilizamos una variable para almacenar y aplicar los cambios de signo y una variable adicional para acumular la sumatoria de términos de la serie:


Y cuando ejecutamos este script en la plataforma colab, iterando hasta mil y con saltos de a dos tenemos el siguiente resultado:


miércoles, 21 de octubre de 2020

Calcular la Aproximación de PI (3.141592) Mediante una Serie Infinita Utilizando Python

Hola a todos, hoy vamos a escribir un programa en Python para calcular la aproximación del número pi mediante la siguiente serie infinita:


Para resolver el problema, vamos a trabajar con una lista que vamos a ir llenando con los valores de los divisores (el producto de cada uno de los cocientes de la serie):


En el código fuente, podemos apreciar el uso de la lista y del juego de variables para calcular los productos, generar la alternancia del signo y una variable adicional para acumular la sumatoria.

En nuestro caso el primer for va a determinar cuantos términos de la serie vamos a calcular. En la medida en que se incrementa el número de términos, obtenemos una mejor aproximación.

En el programa, este for calcula 9 términos: for i in range(2, 20, 2). Si queremos 18 términos lo modificamos como sigue: for i in range(2, 40, 2), y así para calcular términos adicionales.

Si ejecutamos nuestro script tenemos:


Y para 24 términos:

miércoles, 14 de octubre de 2020

Problema 3.23 Contrato Abastecimiento Compañía Weedwacker - Spreadsheet Modeling Cliff T. Ragsdale

Hola a todos, hoy vamos a continuar resolviendo los problemas del libro: Spreadsheet modeling & Decision Analaysis, de CliffT. Ragsdale.

3.23  La compañía Weedwacker manufactura dos tipos de cortadoras de césped: eléctricas y a gas. La empresa obtuvo un contrato para proveer a una cadena de tiendas a nivel nacional un total de 30.000 cortadoras eléctricas y 15.000 a gas. Sin embargo, sus capacidades de producción son limitadas en los tres departamentos que componen la línea de producción: Producción, ensamble y empaque.

La siguiente tabla, muestra un resumen de las horas disponibles en cada uno de los departamentos, para cada uno de los modelos a producir:


El costo de producir una cortadora eléctrica es de $55 y el de una a gas es de $85. Como alternativa para poder suplir la demanda, la compañía puede comprarle a un tercero cortadoras eléctricas en $67 y equipos a gas en $95.

¿Cuántas cortadoras de ambos modelos deberá producir la empresa y comprar al tercero con el propósito de cumplir el contrato y tener el costo mínimo?

Para responder el problema planteado, vamos a construir el siguiente modelo:


Las celdas a variar, son las cantidades a producir y comprar en el rango B11:C12. La parametrización de nuestro solver, es la siguiente:

martes, 6 de octubre de 2020

Construyendo una Tabla de Amortización de Préstamos 2.0 con Python - numpy-financial y tabulate

 Hola a todos, hoy vamos a construir una versión 2.0 de nuestra tabla de amortización de préstamos

Con la ayuda del paquete numpy y de matplotlib incluiremos en nuestro script un par de arrays para guardar los datos relacionados con la porción correspondiente a los pagos asociados al capital y otro para extraer la porción de los intereses.

Teniendo separada esta información, la utilizaremos como un argumento en matplotlib para realizar una gráfica de barras apiladas como la que se puede ver en este ejemplo: