Este repositorio contiene una colección de relaciones de ejercicios de programación con Python. Está basada en la de Ejercicios de programación funcional con Haskell que se ha usado en el curso de Informática (de 1º del Grado en Matemáticas de la Universidad de Sevilla). Están ordenadas según los temas del curso.
- Definiciones por composición sobre números, listas y booleanos.
- Definiciones con condicionales, guardas y patrones.
- Definiciones por recursión.
- Operaciones conjuntistas con listas.
- El algoritmo de Luhn.
- Números de Lychrel.
- Funciones sobre cadenas.
- Tipos de datos algebraicos: Árboles binarios.
- Tipos de datos algebraicos: Árboles.
- Tipos de datos algebraicos: Expresiones.
- El tipo abstracto de datos (TAD) de las pilas.
- Implementación del TAD de las pilas mediante listas.
- Implementación del TAD de las pilas mediante deque.
- Ejercicios con el TAD de las pilas.
- El tipo abstracto de datos (TAD) de las colas.
- Implementación del TAD de las colas mediante listas.
- Implementación del TAD de las colas mediante dos listas.
- Implementación del TAD de las colas mediante deque.
- Ejercicios con el TAD de las colas.
- El tipo abstracto de datos (TAD) de los conjuntos.
- Implementación del TAD de los conjuntos mediante listas no ordenadas con duplicados.
- Implementación del TAD de los conjuntos mediante listas no ordenadas sin duplicados.
- Implementación del TAD de los conjuntos mediante listas ordenadas sin duplicados.
- Implementación del TAD de los conjuntos mediante librería.
- Operaciones con conjuntos.
- El tipo abstracto de datos (TAD) de los polinomios.
- Implementación del TAD de los polinomios mediante listas densas.
- Implementación del TAD de los polinomios mediante listas dispersas.
- Operaciones con el tipo abstracto de datos de los polinomios.
- División y factorización de polinomios mediante la regla de Ruffini.
- El tipo abstracto de datos (TAD) de los grafos.
- Implementación del TAD de los grafos mediante listas.
- Problemas básicos con el TAD de los grafos.
- Algoritmos sobre grafos.
- Ejercicios sobre grafos.
- Búsqueda en espacios de estados por profundidad.
- El problema de las n reinas (por profundidad).
- Búsqueda en espacios de estados por anchura.
- El problema de las n reinas (por anchura).
- El problema de la mochila.
- Búsqueda por primero el mejor.
- El problema del 8 puzzle.
- Búsqueda en escalada.
- El algoritmo de Prim del árbol de expansión mínimo.
- El problema del granjero.
- El problema de las fichas.
- El problema del calendario.
- El problema del dominó.
- El problema de suma cero.
- El problema de las jarras.
- La función de Fibonacci por programación dinámica
- Coeficientes binomiales
- Longitud de la subsecuencia común máxima.
- Subsecuencia común_máxima.
- La distancia Levenshtein (con programación dinámica).
- Caminos en una retícula (con programación dinámica).
- Caminos en una matriz.
- Máxima suma de los caminos en una matriz.
- Camino de máxima suma en una matriz.
- Cálculo numérico: Diferenciación y métodos de Herón y de Newton.
- Cálculo numérico (2): Límites, bisección e integrales.
- Números de Pentanacci.
- El teorema de Navidad de Fermat.
- Números primos de Hilbert.
- Factorizaciones de números de Hilbert.
- Representaciones de un número como suma de dos cuadrados.
- La serie de Thue-Morse.
- La sucesión de Thue-Morse.
- Huecos maximales entre primos.
- La función indicatriz de Euler.
- Ceros finales del factorial.
- Primos cubanos.
- Cuadrado más cercano.
- Suma de cadenas.
- Sistema factorádico de numeración.
- Duplicación de cada elemento.
- Suma de fila del triángulo de los impares.