Yo he utilizado lista.pop() + sumar(lista) Con el .pop se eliminan solas de la lista además de devolverte el valor! Lo menciono ya que me parece más sencillo con esta forma.
El ejemplo está bien para ilustrar la recursión. Pero el programador debe ser cauto cuando pasa parámetros recursivamente por el tema de los recursos. Hay que recordar que la memoria que se utiliza al entrar a una función recursiva se mantiene usada hasta que se sale completamente de la recursión. Es decir que en la primera llamada se ocupará la memoria para la lista de 10 números, la que se mantendrá en memoria cuando entre de nuevo a la función pero ahora agregando otra lista mas con 9 números y así sucesivamente hasta tener una lista vacía. En una lista de 10 números no seria mucho, pero imagina una lista de 1000 números o más.
Hola, gracias por el aporte. En el reto 7 de este nivel vemos el tema de la eficiencia de las funciones recursivas y como si una función recursiva llevase a cabo más de 1000 llamadas recursivas daría error y como solucionarlo: th-cam.com/video/2M1oIqZeTP4/w-d-xo.html Un saludo.
Buen video amigo sigue así Tengo un problema y me gustaría que me ayude Quiero desarrollar una doble sumatoria, la sumatoria es el siguiente: Sumatoria de i=1 hasta N(Sumatoria de j=1 hasta N(yi*yj*SQRT(ai*aj*bi*bi))) Donde yi, yj, ai, aj, bi, bj ----> son valores conocidos Le agradezco de antemano su ayuda Buena suerte para ti y tu familia
Hola, no se muy bien a qué te refieres en el ejercicio. En el canal hemos llevado a cabo alguna sumatoria simple, como en el nivel 6 reto 5: th-cam.com/video/xjSJ0tt1OVw/w-d-xo.html Pero por lo que dices puede que necesites utilizar dos bucles for anidados. En el nivel 12 reto 1 llevamos a cabo un ejercicio con bucles for anidados en los que vemos como utilizar las variables i y j de los bucles para poderlos luego utilizar en posibles sumatorias: th-cam.com/video/EupnH2yWUxk/w-d-xo.html Espero que quizás los vídeos te puedan servir al menos para orientarte un poco. Gracias. Un saludo.
Buenas tardes tienes undonde se ingresen los numeros en una lista y se vayan sumando los numero uno a uno y vaya diciendo si es correcta o incorrecta la suma? Saludos
Hola, sería lo mismo, lo único que habría que restarlos de una cantidad, de cero o de otra cantidad que se pase como parámetro. Podría ser así: def restar(lista, n): if lista == []: return n else: return restar(lista[1:], n) - lista[0] lista = [1,2,3,4,5] print(restar(lista, 100)) Espero que te pueda servir. Un saludo
Hola, si vas a sumar números decimales, puedes utilizar la función round(). Si tienes que suma = 12.34567 y quieres que tenga sólo dos decimales, pues pasando suma y 2 de segundo argumento te redondearía el número a dos decimales: resultado = round(suma, 2) Espero que te pueda servir. Un saludo
Gracias por el video. Me podrías ayudar? No se si no entiendo bien el video Tengo una duda... a=[1,2,5,6] def sumar(a): return a[0] + a[1:] print(sumar(a)) ... Porque el return a[0] lo lee como un enterno y el a[1:] como una lista, y el entero mas lista no permite que se sumen los numeros
Hola, en la función te falta incorporar las llamadas recursivas: ... return a[0] + sumar(a[1:]) Al final de la recursión la función devuelve un número entero que se va sumando al resto de números enteros al salir de la recursión. Un saludo.
@@manuelgonzalez1644 Gracias por responder, pero para ser honesto aun no comprendo muy bien este tema de las recursivas, creo que vere tu lista de videos de este tema que se ve interesante.. Bueno igual de acuerdo a tu ejemplo tratare de ser mas explicito esta vez. a=[1,2,5,6] def sumar (a): if a == []: #En esta parte como serìa la lista "a" igual a una lista "vacìa" cuando por defecto la lista "a" tiene 4 enteros.. suma= 0 #entonces saltaria directamente al else a mi forma de ver else: suma= a[0] + sumar(a[1:])#aqui al poner sumar(a[1:]), estarìa invocando a la funcion sumar por 2da vez, y pienso que esto es como si fuera un "for" porque retornarìa al principio, luego lo almacenaria en "suma", aunque como dije antes, a no es igual a una lista vacia. Entonces no le veo caso de hacer un if y un else porque nunca entrarìa al if, pero bueno todo esto es segun mi perspectiva, igual gracias de antemano de nuevo return suma print (sumar(a))
Hola, podrías crear una variable donde guardar la suma: suma = 0 Luego vas iterando por todos los elementos de la lista con un bucle for y sumando esos elementos a la variable suma: for elemento in lista: suma += elemento En el vídeo siguiente hacemos un ejercicio en el que iteramos por una lista por si te puede ayudar: th-cam.com/video/VoHRsndjtRs/w-d-xo.html Espero que te pueda servir. Un saludo.
podrias hacer un video sobre de resta, multiplicar y dividir en lista, use tu metodo pero no me sale como yo quiero: def rest(num): if num==[]: return 0 else: return num[0]-rest(num[1:]) num=[12,46,79] #debe salir -113 pero sale 45 print(rest(num))
Sí parece que algo tenga de inductivo la recursión, pues se van tomando diferentes casos para sacar un esquema que les una, pero no te sabría decir exactamente. Un saludo.
Yo lo hice así, que no se diga que no intento xD l=[1,2,3,4,5] def suma(l,i): if -i==-len(l): return l[i] else:n l[-i-2]=l[-i-2]+l[-i-1] return suma(l,-i+1)
Excelente Canal!!!! me quedo a la espera del próximo video. Saludos
Yo he utilizado lista.pop() + sumar(lista)
Con el .pop se eliminan solas de la lista además de devolverte el valor!
Lo menciono ya que me parece más sencillo con esta forma.
Eres una máquina
Gracias :)
tu espanol es tambien claro como informatica (puedo etender casi todo) , muchas gracias
El ejemplo está bien para ilustrar la recursión. Pero el programador debe ser cauto cuando pasa parámetros recursivamente por el tema de los recursos. Hay que recordar que la memoria que se utiliza al entrar a una función recursiva se mantiene usada hasta que se sale completamente de la recursión. Es decir que en la primera llamada se ocupará la memoria para la lista de 10 números, la que se mantendrá en memoria cuando entre de nuevo a la función pero ahora agregando otra lista mas con 9 números y así sucesivamente hasta tener una lista vacía. En una lista de 10 números no seria mucho, pero imagina una lista de 1000 números o más.
Hola, gracias por el aporte. En el reto 7 de este nivel vemos el tema de la eficiencia de las funciones recursivas y como si una función recursiva llevase a cabo más de 1000 llamadas recursivas daría error y como solucionarlo:
th-cam.com/video/2M1oIqZeTP4/w-d-xo.html
Un saludo.
Buen video amigo sigue así
Tengo un problema y me gustaría que me ayude
Quiero desarrollar una doble sumatoria, la sumatoria es el siguiente:
Sumatoria de i=1 hasta N(Sumatoria de j=1 hasta N(yi*yj*SQRT(ai*aj*bi*bi)))
Donde yi, yj, ai, aj, bi, bj ----> son valores conocidos
Le agradezco de antemano su ayuda
Buena suerte para ti y tu familia
Hola, no se muy bien a qué te refieres en el ejercicio. En el canal hemos llevado a cabo alguna sumatoria simple, como en el nivel 6 reto 5:
th-cam.com/video/xjSJ0tt1OVw/w-d-xo.html
Pero por lo que dices puede que necesites utilizar dos bucles for anidados. En el nivel 12 reto 1 llevamos a cabo un ejercicio con bucles for anidados en los que vemos como utilizar las variables i y j de los bucles para poderlos luego utilizar en posibles sumatorias:
th-cam.com/video/EupnH2yWUxk/w-d-xo.html
Espero que quizás los vídeos te puedan servir al menos para orientarte un poco.
Gracias. Un saludo.
Buenas tardes tienes undonde se ingresen los numeros en una lista y se vayan sumando los numero uno a uno y vaya diciendo si es correcta o incorrecta la suma? Saludos
y si los elementos son flotantes como se hace
hola..... tengo una pregunta.... y si yo quisiera restas los elemento de una lista.. o columna?
Hola, sería lo mismo, lo único que habría que restarlos de una cantidad, de cero o de otra cantidad que se pase como parámetro. Podría ser así:
def restar(lista, n):
if lista == []:
return n
else:
return restar(lista[1:], n) - lista[0]
lista = [1,2,3,4,5]
print(restar(lista, 100))
Espero que te pueda servir. Un saludo
Muy buena la explicación pero ¿Como podría hacer que tuviera 2 decimales al final de la suma? osea 85.95 no encuentro la manera de lograrlo .
Hola, si vas a sumar números decimales, puedes utilizar la función round().
Si tienes que suma = 12.34567 y quieres que tenga sólo dos decimales, pues pasando suma y 2 de segundo argumento te redondearía el número a dos decimales:
resultado = round(suma, 2)
Espero que te pueda servir. Un saludo
Si yo quiero irlos sumando de 3 en 3 y guardar las sumas en otro arreglo? 🥲
Hola. Cómo puedo sumar la cantidad de string en una lista. Por ejemplo la cantidad de contactos en un diccionario telefónico. Gracias
Gracias por el video. Me podrías ayudar? No se si no entiendo bien el video Tengo una duda...
a=[1,2,5,6]
def sumar(a):
return a[0] + a[1:]
print(sumar(a))
... Porque el return a[0] lo lee como un enterno y el a[1:] como una lista, y el entero mas lista no permite que se sumen los numeros
Hola, en la función te falta incorporar las llamadas recursivas:
...
return a[0] + sumar(a[1:])
Al final de la recursión la función devuelve un número entero que se va sumando al resto de números enteros al salir de la recursión.
Un saludo.
@@manuelgonzalez1644 Gracias por responder, pero para ser honesto aun no comprendo muy bien este tema de las recursivas, creo que vere tu lista de videos de este tema que se ve interesante.. Bueno igual de acuerdo a tu ejemplo tratare de ser mas explicito esta vez.
a=[1,2,5,6]
def sumar (a):
if a == []: #En esta parte como serìa la lista "a" igual a una lista "vacìa" cuando por defecto la lista "a" tiene 4 enteros..
suma= 0 #entonces saltaria directamente al else a mi forma de ver
else:
suma= a[0] + sumar(a[1:])#aqui al poner sumar(a[1:]), estarìa invocando a la funcion sumar por 2da vez, y pienso que esto es como si fuera un "for" porque retornarìa al principio, luego lo almacenaria en "suma", aunque como dije antes, a no es igual a una lista vacia. Entonces no le veo caso de hacer un if y un else porque nunca entrarìa al if, pero bueno todo esto es segun mi perspectiva, igual gracias de antemano de nuevo
return suma
print (sumar(a))
si requiero extraer los elementos de una lista que sumen n como seria?
si alguien me puede ayudar
¿cómo podría sumar todos los elementos de un arreglo con ciclos? i.e sin usar métodos
Hola, podrías crear una variable donde guardar la suma:
suma = 0
Luego vas iterando por todos los elementos de la lista con un bucle for y sumando esos elementos a la variable suma:
for elemento in lista:
suma += elemento
En el vídeo siguiente hacemos un ejercicio en el que iteramos por una lista por si te puede ayudar:
th-cam.com/video/VoHRsndjtRs/w-d-xo.html
Espero que te pueda servir. Un saludo.
¿no es mas facil?
sumar =sum(lista)
print (sumar)
podrias hacer un video sobre de resta, multiplicar y dividir en lista, use tu metodo pero no me sale como yo quiero:
def rest(num):
if num==[]:
return 0
else:
return num[0]-rest(num[1:])
num=[12,46,79] #debe salir -113 pero sale 45
print(rest(num))
Hola, tienes un vídeo sobre como llevar a cabo la resta recursiva que comentas:
th-cam.com/video/XCBHkkvYEXM/w-d-xo.html
Un saludo.
Estás aplicando el método inductivo, cierto?
Sí parece que algo tenga de inductivo la recursión, pues se van tomando diferentes casos para sacar un esquema que les una, pero no te sabría decir exactamente. Un saludo.
Yo lo hice así, que no se diga que no intento xD
l=[1,2,3,4,5]
def suma(l,i):
if -i==-len(l):
return l[i]
else:n
l[-i-2]=l[-i-2]+l[-i-1]
return suma(l,-i+1)
i sería la cantidad de elementos de la lista