Dado un número n. La tarea es imprimir la array de Aikten hasta n.
Ejemplos:
Input: 5 Output: [1] [1, 2] [2, 3, 5] [5, 7, 10, 15] [15, 20, 27, 37, 52] Input: 7 Output: [1] [1, 2] [2, 3, 5] [5, 7, 10, 15] [15, 20, 27, 37, 52] [52, 67, 87, 114, 151, 203] [203, 255, 322, 409, 523, 674, 877]
Para imprimirlo primero seguimos los siguientes pasos:
- Escribimos 1 en la primera fila.
- A continuación, llenamos el valor más a la izquierda de cada fila con el valor más a la derecha de la fila anterior.
- Los siguientes elementos de cada fila se llenan con la regla simple, es decir, cada elemento de una fila en particular es la suma de los valores a la izquierda de esa fila con los valores de la fila superior en la misma posición.
Para una mejor comprensión, consideremos la tercera fila del ejemplo anterior que consta de los elementos 2, 3, 5. El valor más a la izquierda de esta fila es el valor más a la derecha de la fila anterior, es decir, 2. El siguiente valor 3 es la suma del valor a la izquierda si esa fila (2) y el valor en la misma posición de la fila anterior (1). Del mismo modo, 5 es la suma de 3 y 2.
A continuación se muestra la implementación.
# Python program to print # Aitken's array from queue import Queue from functools import reduce, lru_cache # for dynamic programming # Recursive function to print the # Aitken's array. @lru_cache() def rec(n): # Base case if n == 1: print([1]) return [1] array = [rec(n-1)[-1]] for k in range(n-1): array.append(array[k] + rec(n-1)[k]) print(array) return array # Driver's code rec(7)
Producción:
[1] [1, 2] [2, 3, 5] [5, 7, 10, 15] [15, 20, 27, 37, 52] [52, 67, 87, 114, 151, 203] [203, 255, 322, 409, 523, 674, 877]
Publicación traducida automáticamente
Artículo escrito por VisheshMangla1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA