J'ai le code Python suivant.
def collatz(n):
if n <= 1:
return True
elif (n%2==0):
return collatz(n/2)
else:
return collatz(3*n+1)
Quel est le temps d'exécution de cet algorithme?
Essayer:
Si désigne le temps d'exécution de la fonction . Alors je pense que j'ai
{ T ( n ) = 1 pour n ≤ 1 T ( n ) = T ( n / 2 ) pour n pair T ( n ) = T ( 3 n + 1 ) pour n impaircollatz(n)
Je pense que sera si est pair mais comment calculer la récurrence en général?lg n n
collatz
balise sur MathOverflow etc. les dernières recherches montrent que le problème a des qualités fractales intrinsèques qui le rendent difficile.