+ 1
¿Como corrijo la funcion recursiva pt() ?
# se busca hacer potencia con elementos de lista de forma recursiva para validar b^4 in lista_a ^20 def elemento_a_elemento(lista1,lista2): aux=[] for element in lista1: for elemento in lista2: aux.append(element + elemento) return aux def pt(lista,num): if num==0: return [] if num==1: return lista else: #necesito ayuda para hacer recursiva esta funcion, hasta ahora tengo esto: listaAux= elemento_a_elemento(lista,lista) return pt(listaAux,num-1) lista_a=['ac','b'] print (pt(lista_a,4))
3 odpowiedzi
+ 1
De hecho, como esta actualmente tu codigo, estas pasando la lista ['ac','b'] dos veces a la funcion elemento_a_elemento.
Por elemento en la lista ['ac','b']
Por elemento en la lista ['ac','b']
Iteraciones:
1) 'ac' + 'ac' = 'acac'
2) 'ac' + 'b' = 'acb'
3) 'b' + 'ac' = 'bac'
4) 'b' + 'b' = 'bb'
Te devuelve la lista: ['acac', 'acb', 'bac', 'bb']
Luego en la recursion:
Por cada elemento en lista['acac', 'acb'.....
Esta es el comportamiento que quieres para tu funcion?
Ah, y el condicional (if num == 1) creo que no deberia ir, debido a que se perderia una potencia.. Exito!
0
¿Cuál se supone que debe ser el resultado de "print(pt(lista_a,4))"?
0
La 4 ta potencia de lista_a quedaria dentro elementos como acacacac, bbbb