Hoy me enteré de la existencia de la sucesión de Padovan, que se define como sigue:
p[0] = 1
p[1] = 1
p[2] = 1
p[n] = p[n - 2] + p[n - 3]
Se parece mucho a la sucesión de Fibonacci, aunque desplazada. El último elemento es ignorado, solo para retomarlo en el cálculo del siguiente elemento.
¿Cómo sería la sucesión de Padovan en Python?
def padovan_seq(n: int) -> list[int]:
toret = []
if n > 0:
match n:
case 0:
toret = [1]
case 1:
toret = [1, 1]
case 2:
toret = [1, 1, 1]
case _:
toret = padovan_seq(n - 1)
toret += [toret[-2] + toret[-3]]
...
return toret
...
if __name__ == "__main__":
print("Sucesión de Padovan")
print(str.join(", ", (str(x) for x in padovan_seq(100))))
...
La salida es la siguiente:
Sucesión de Padovan
1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12, 16, 21, 28, 37, 49, 65, 86, 114, 151, 200, 265, 351, 465, 616, 816, 1081, 1432, 1897, 2513, 3329, 4410, 5842, 7739, 10252, 13581, 17991, 23833, 31572, 41824, 55405, 73396, 97229, 128801, 170625, 226030, 299426, 396655, 525456, 696081, 922111, 1221537, 1618192, 2143648, ...
Oh, bueno, y ¿qué pasa con el título? ¿Qué tiene que ver un Padawan de Star Wars con todo esto? Directamente nada. Solo es clickbait, me temo.
Ya, yo es que soy así.
Si te gusta este contenido, puedes encontrar más en mi libro Introducción a la programación con Python. ¡Aprende mientras aplicas tus conocimientos en casos reales!
Top comments (0)