Articles of recursión

Búsqueda binaria de recursión en Python

Tengo una lista con los números del 0-9: mylist = list(range(10)) Estoy recibiendo un error con el comando de división para obtener la mid : def binary_search(mylist, element, low, high): low=0 high= len(mylist) mid=low + (high- mymin)/2 if mid==len(mylist): return False elif mylist[mid]==element: return mid elif high==low: return False elif mylist[mid]<element: return binary_search(mylist, element, mymin, […]

Fibonacci ascendente en python usando espacio O (1)

Quiero escribir un fibonacci de abajo hacia arriba utilizando el espacio O (1). Mi problema es que la stack de recursión de Python me está limitando a probar grandes números. ¿Podría alguien proporcionar una alternativa u optimización a lo que tengo? Este es mi código: def fib_in_place(n): def fibo(f2, f1, i): if i < 1: […]

Generador recursivo en C ++

Tengo un vector de tamaño = N donde cada elemento i puede tener valores de 0 a valores_posibles [i] -1. Quiero hacer una función que me itere a través de todos esos valores. Pude hacer eso en Python usando un generador recursivo: def all_values(size,values,pos=0): if pos == size: yield [] else: for v in xrange(values[pos]): […]

Python Quicksort Runtime Error: Profundidad máxima de recursión excedida en cmp

Estoy escribiendo un progtwig que leerá un archivo de texto que contiene 5,163 nombres. (archivo de texto se puede ver aquí ) Luego quiero almacenar los nombres en una lista llamada ‘nombres’, luego, ordeno la lista según la cantidad de letras que contiene el nombre, los nombres más cortos están al principio de la lista […]

Acceso eficiente a diccionarios arbitrariamente profundos.

Supongamos que tengo un diccionario de varios niveles como este mydict = { ‘first’: { ‘second’: { ‘third’: { ‘fourth’: ‘the end’ } } } } Me gustaría acceder así. test = get_entry(mydict, ‘first.second.third.fourth’) Lo que tengo hasta ahora es def get_entry(dict, keyspec): keys = keyspec.split(‘.’) result = dict[keys[0]] for key in keys[1:]: result = […]

Creando un diccionario nested desde un diccionario aplanado

Tengo un diccionario aplanado que quiero convertir en uno nested, de la forma flat = {‘X_a_one’: 10, ‘X_a_two’: 20, ‘X_b_one’: 10, ‘X_b_two’: 20, ‘Y_a_one’: 10, ‘Y_a_two’: 20, ‘Y_b_one’: 10, ‘Y_b_two’: 20} Quiero convertirlo al formulario. nested = {‘X’: {‘a’: {‘one’: 10, ‘two’: 20}, ‘b’: {‘one’: 10, ‘two’: 20}}, ‘Y’: {‘a’: {‘one’: 10, ‘two’: 20}, ‘b’: […]

¿Construir recursivamente el árbol JSON jerárquico?

Tengo una base de datos de conexiones padre-hijo. Los datos se parecen a los siguientes, pero se pueden presentar de la forma que desee (diccionarios, lista de listas, JSON, etc.). links=((“Tom”,”Dick”),(“Dick”,”Harry”),(“Tom”,”Larry”),(“Bob”,”Leroy”),(“Bob”,”Earl”)) La salida que necesito es un árbol JSON jerárquico, que se procesará con d3. Hay subárboles discretos en los datos, que adjuntaré a un […]

Desafío de recursión de Python

Actualmente estoy en una introducción a Python y clase de teoría computacional, y recientemente hubo una pregunta difícil sobre el examen que simplemente no pude resolver. Implica escribir código para un progtwig que agrega números. Creo que se supone que la pregunta usa recursión. No recuerdo cómo se redactó exactamente la pregunta, pero aquí está […]

Decorador Python para cronometrar funciones recursivas.

Tengo un decorador simple para rastrear el tiempo de ejecución de una llamada de función: def timed(f): def caller(*args): start = time.time() res = f(*args) end = time.time() return res, end – start return caller Esto se puede usar de la siguiente manera, y devuelve una tupla del resultado de la función y el tiempo […]

¿Getattr y setattr en objetos nesteds?

Este es probablemente un problema simple, así que espero que sea fácil para alguien señalar mi error o si esto es posible. Tengo un objeto que tiene múltiples objetos como propiedades. Quiero poder establecer dinámicamente las propiedades de estos objetos así: class Person(object): def __init__(self): self.pet = Pet() self.residence = Residence() class Pet(object): def __init__(self,name=’Fido’,species=’Dog’): […]