Problemas clásicos matemáticos y de programación resueltos con recursividad en MATLAB
Paul Freire Diaz
Universidad Nacional de Chimborazo
https://orcid.org/0000-0002-0657-9717
Ximena López-Mendoza
Universidad Nacional de Chimborazo
https://orcid.org/0000-0002-9564-6300
Johnny Ernesto Noboa Reyes
Universidad Nacional de Chimborazo
https://orcid.org/0009-0000-1251-9238
Santiago Delgado Brito
Universidad Nacional de Chimborazo
https://orcid.org/0009-0001-2530-1526
Tania Paulina Morocho Barrionuevo
Escuela Superior Politécnica de Chimborazo
https://orcid.org/0000-0002-1019-6049
DOI: https://doi.org/10.55204/trj.v4i1.e70
Palabras clave: Fibonacci, Hanoi, Algoritmo de Euclides, MATLAB, Big O
Resumen
La recursividad es un paradigma de diseño algorítmico que ofrece soluciones comprensibles a una gama de problemas al delimitar un conjunto potencialmente infinito de operaciones a través de una definición finita. En este trabajo se presenta un enfoque teórico y aplicativo de la resolución mediante recursividad de problemas clásicos de matemáticas, con código implementado en MATLAB y describiendo el método usado en cada caso, a saber: sucesión de Fibonacci, Torres de Hanói, multiplicación mediante sumas, el algoritmo de Euclides para el Máximo Común Divisor y exponenciación, discutiendo individualmente los resultados obtenidos y comparando las soluciones recursivas con sus respectivas iterativas en términos de eficiencia y claridad del código. Se evidenció que la implementación directa del modelo matemático usando recursividad puede implicar costos computacionales altos (como en Fibonacci), aunque en otros problemas no requiere mayores recursos (Euclides) e incluso permite implementar mejoras significativas en el algoritmo de exponenciación rápida.
Descargas
Citas
Bolaños, F., & Bernal, Á. (2008). Una implementación hardware optimizada para el operador exponenciación modular. Año, 75, 55–63. https://dialnet.unirioja.es/servlet/articulo?codigo=7542039
Chedid, F. B., & Mogi, T. (1996). A simple iterative algorithm for the towers of Hanoi problem. IEEE Transactions on Education, 39(2), 274–275. https://doi.org/10.1109/13.502075
Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to Algorithms, Third Edition. Massachusetts Institute of Technology. https://enos.itcollege.ee/~japoia/algorithms/GT/Introduction_to_algorithms-3rd%20Edition.pdf
Díaz, E., Martín, A. ;, Jiménez, R. ;, García, J. E. ;, Hernández, E. ;, & Rodríguez, S. ; (2012). Torre de Hanoi: datos normativos y desarrollo evolutivo de la planificación. European Journal of Education and Psychology, 5(1), 79–91. www.ejep.es
Dresden, G. P. B., & Du, Z. (2014). A simplified binet formula for k-generalized fibonacci numbers. Journal of Integer Sequences, 17(4). https://dresden.academic.wlu.edu/files/2017/08/BinetJISsecond.pdf
Fei, J., Dong, S., & Fei, D. (2025). Computational thinking in complex problem solving based on data analysis: exploring the role of problem representation using the Tower of Hanoi. Advances in Continuous and Discrete Models, 2025(1). https://doi.org/10.1186/s13662-025-03866-3
Gordon, D. M. (1998). A Survey of Fast Exponentiation Methods. Journal of Algorithms, 27(1), 129–146. https://doi.org/10.1006/JAGM.1997.0913
He, W., Zhang, Y., & Li, Y. (2022). An Efficient Exponentiation Algorithm in GF(2m) Using Euclidean Inversion. IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, E105.A(9), 1381–1384. https://doi.org/10.1587/TRANSFUN.2022EAL2002
Trejos Buriticá, O. I. (2015). Algoritmo Recursivo diferente para hallar elementos de la serie de Fibonacci usando Programación Funcional. AVANCES Investigación En Ingeniería, 11(2), 19. https://doi.org/https://doi.org/10.18041/1794-4953/avances.2.229
Ivorra Castillo, C. (2023). Lógica y teoría de conjuntos. Universidad de Valencia. https://www.uv.es/ivorra/Libros/Logica.pdf
Joye, M., & Yen, S. M. (2003). The Montgomery Powering Ladder. Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2523, 291–302. https://doi.org/10.1007/3-540-36400-5_22
Kereki, F. (2021). Creación de formularios para la web utilizando Programación Dinámica. Revista Argentina de Ingeniería, 17(9), 72–79. https://confedi.org.ar/wp-content/uploads/2021/05/Articulo6-RADI17.pdf
Ma, T., Vernon, R., & Arora, G. (2024). Generalization of the 2-Fibonacci sequences and their Binet formula. Notes on Number Theory and Discrete Mathematics, 30(1). https://doi.org/10.7546/nntdm.2024.30.1.67-80
Mancinas González, A., & Montijo Mendoza, M. F. (2021). Pensamiento computacional y aprendizaje adaptativo en la resolución de problemas con fracciones. EPISTEMUS, 15(30). https://doi.org/10.36790/epistemus.v15i30.171
Méndez, G. (2015). Diseño de algoritmos recursivos. In Estructuras de Datos y Algoritmos (pp. 49–92). Universidad Complutense de Madrid. https://www.cartagena99.com/recursos/alumnos/apuntes/4.%20Diseno%20de%20Algoritmos%20Recursivos.pdf
Pashaev, O. K., & Nalci, S. (2012). Golden quantum oscillator and Binet-Fibonacci calculus. Journal of Physics A: Mathematical and Theoretical, 45(1). https://doi.org/10.1088/1751-8113/45/1/015303
Pérez París, A., & Gutiérrez Muñoz, J. (2003). Las torres de Hanoi. Vivat Academia. Revista de Comunicación, 45–55. https://doi.org/10.15178/va.2001.30.45-55
Rittaud, B. (2022). Fibonacci-like sequences for variants of the tower of Hanoi, and corresponding graphs and gray codes. http://arxiv.org/abs/2206.03047
Rojas, W., & Silva, M. (2016). Introducción a Java: guía de actividades prácticas. In Introducción a Java: guía de actividades prácticas (1st ed., pp. 123–126). Universidad del Bosque. https://doi.org/https://doi.org/10.2307/jj.5329367.26
Romero-Riaño, E., Martínez-Toro, G. M., & Rico-Bautista, D. (2020). Analysis of algorithms complexity: application cases. Revista Colombiana de Tecnologías de Avanzada, 2(36), 122–133. https://www.unipamplona.edu.co/unipamplona/portalIG/home_40/recursos/05_v31_35/revista_35/documentos/18022020/35-17.pdf
Salas Ruiz, R. E., & Rodríguez Rodríguez, J. E. (2013). Análisis de complejidad algorítmica. Revista Vínculos, 1(2), 3–12. https://doi.org/https://doi.org/10.14483/2322939X.4071
Sun, Y., Peng, X., & Xiong, Y. (2023). Synthesizing Efficient Memoization Algorithms. Proceedings of the ACM on Programming Languages, 7(OOPSLA2), 27. https://doi.org/10.1145/3622800
Tavares, J. N. (2018). O algoritmo de Euclides. Revista de Ciência Elementar, 6(3). https://doi.org/10.24927/rce2018.056
The MathWorks Inc. (2025). Compile-Time Recursion Limit Reached. https://la.mathworks.com/help/fixedpoint/ug/compile-time-recursion-limit-reached.html?searchHighlight=RecursionLimit&s_tid=srchtitle_support_results_3_RecursionLimit#bvejmnb
Wimmer, S., Hu, S., & Nipkow, T. (2018). Verified Memoization and Dynamic Programming. Interactive Theorem Proving, 9. https://home.cit.tum.de/~wimmers/papers/Memoization_DP.pdf