Se quieres sumar los números impares, que tienen la siguiente distribución
1
3 5
7 9 11
13 15 17 19
...
Para entender la lógica, primero definimos una función que nos muestre estos números:
In [1]:
def imprimir(n):
fila = 1
cantidad_fila = 1 # cuantos numeros hay en la fila
numero_inicio = 1 # el numero de inicio
while fila <= n:
s = ''
for i in range(fila):
s += ' '+str(numero_inicio)
numero_inicio += 2
print(s)
fila += 1
cantidad_fila += 1
imprimir(9)
Podemos reducir la función teniendo en cuenta que fila y cantidad_fila, siempre son iguales:
In [2]:
def imprimir(n):
fila = 1 # inica la fila actual, y cuantes elementos hay
numero_inicio = 1 # el numero de inicio
while fila <= n:
s = ''
for i in range(fila):
s += ' '+str(numero_inicio)
numero_inicio += 2
print(s)
fila += 1
imprimir(4)
Sumar todos los elementos hasta la fila n¶
Tomando como referencia la funcion imprimir(), definimos la siguiente función
In [14]:
def sumar_todo(n):
fila = 1 # inica la fila actual, y cuantes elementos hay
numero_inicio = 1 # el numero de inicio
ans = 0 # suma en la fila n
while fila <= n:
for i in range(fila):
ans += numero_inicio # aqui sumamos la fila
numero_inicio += 2
fila += 1
return ans
sumar_todo(3)
Out[14]:
In [15]:
for x in range(5):
ans = sumar_todo(x)
print(ans)
Sumar los elementos de una fila¶
Para sumar los números de una fila, declaramos la siguiente función con similar lógica
In [7]:
def sumar_fila(n):
fila = 1 # inica la fila actual, y cuantes elementos hay
numero_inicio = 1 # el numero de inicio
ans = 0 # suma en la fila n
while fila <= n:
for i in range(fila):
if n == fila:
ans += numero_inicio # aqui sumamos la fila
numero_inicio += 2
fila += 1
return ans
sumar_fila(4)
Out[7]:
Veamos las suma de las primeras 10 filas
In [8]:
for x in range(10):
ans = sumar_fila(x)
print(ans)
Vemos que cada número es un cubo perfecto, entonces si sacamos su raiz cúbica tenemos:
In [9]:
import math
for x in range(10):
ans = sumar_fila(x)
print(ans,math.pow(ans,1/3))
Es decir para la fila $n$ la suma en dicha fila es $n^3$
No hay comentarios.:
Publicar un comentario