fibo, la bonne façon de le coder, c'est de ne pas calculer
fib(n) mais de calculer fibAux n= ( fib (n-1), fib n )
parce qu'à l'étape d'après, on a directement
fibAux (n+1) = (fib n, fib (n-1)+fib n).
En chameau, ça donne un truc du genre:
let rec fibAux n =
if n=1 then (1,1)
else
let (a,b)=fibAux (n-1) in (b,a+b);;
let fib n=
if n=0 then 1
else
let (a,b)=fibAux n in b;;
[^] # Re: Comment casser le mythe de rapidité de Fibonacci :-)
Posté par fmaz fmaz . En réponse à la dépêche Erlang/OTP R11B supporte les architectures multiprocesseur. Évalué à 4.
pourquoi tant de haine^Wtable de hashage.
fibo, la bonne façon de le coder, c'est de ne pas calculer
fib(n) mais de calculer fibAux n= ( fib (n-1), fib n )
parce qu'à l'étape d'après, on a directement
fibAux (n+1) = (fib n, fib (n-1)+fib n).
En chameau, ça donne un truc du genre:
let rec fibAux n =
if n=1 then (1,1)
else
let (a,b)=fibAux (n-1) in (b,a+b);;
let fib n=
if n=0 then 1
else
let (a,b)=fibAux n in b;;