Avatar ·

RecursionError: maximum recursion depth exceeded - como superar?

📁 python, pergunta, conselho, IA

Há uma tarefa em ; há sua solução, onde pela elegância Python "venceu" C#, mas já em x=512 aparece RecursionError: o que vocês aconselham, mestres? Como superar, se quiser calcular para x=1024, por exemplo?

import functools 
from math import sqrt
@functools.lru_cache()
def f(x):
    if x <= 1: return 0
    return 1 + min([ f(m + x // m - 2)  for m in range                    
Avatar ·

E,F,A,B produz a tupla (5,6,1,2), que não tem mais nenhuma relação com as variáveis originais e não está de forma alguma conectada a elas.

foo = E,F,A,Bprint(foo)  # => (5, 6, 1, 2)E = -777print(foo)  # ainda => (5, 6, 1, 2)

A sintaxe A,B,C,D = — é unpacking (desempacotamento) (neste caso de uma tupla) — atribui sequencialmente valores de uma lista, tupla ou qualquer outro objeto iterável (pode-se usar = range(4), por exemplo) após o sinal de igual. E aquela tupla que está à direita já não tem nenhuma relação com as variáveis originais.

Faça login para deixar uma resposta

Blogs