Un po' di codice dalle prime lezioni del GualĂ , implementando lo pseudocodice in Python.
La mia carriera sposta il suo azzardo, in parte, verso la scienza dell'algoritmica. Tanto avrei da raccontare, ma la vita o la si vive o la si racconta...
from math import *
from numpy import *
def fib1(n):
phip=(1+sqrt(5))/2.
phim=(1-sqrt(5))/2.
return(1./(sqrt(5))*(phip**n-phim**n))
def fib2(n):
if(n<=2):
return(1)
else:
return(fib2(n-1)+fib2(n-2))
def fib3(n):
fib=range(0,n)
fib[0]=fib[1]=1
for i in range(2,n):
fib[i]=fib[i-1]+fib[i-2]
return(fib[n-1])
def fib4(n):
a=b=1
for i in range(3,n+1):
c=a+b
a=b
b=c
return(b)
def fib5(n):
M=matrix([[1,1],[1,0]])
F=matrix([[1,0],[0,1]])
for i in range(1,n):
F=F*M
return(F[0,0])
def fib6(n):
F=matrix([[1,0],[0,1]])
F=fibpower(F,n-1)
return(F[0,0])
def fibpower(F,n):
if(n>1):
F=fibpower(F,n/2)
F=F*F
if(n%2==1):
F=F*matrix([[1,1],[1,0]])
return(F)
La mia carriera sposta il suo azzardo, in parte, verso la scienza dell'algoritmica. Tanto avrei da raccontare, ma la vita o la si vive o la si racconta...
from math import *
from numpy import *
def fib1(n):
phip=(1+sqrt(5))/2.
phim=(1-sqrt(5))/2.
return(1./(sqrt(5))*(phip**n-phim**n))
def fib2(n):
if(n<=2):
return(1)
else:
return(fib2(n-1)+fib2(n-2))
def fib3(n):
fib=range(0,n)
fib[0]=fib[1]=1
for i in range(2,n):
fib[i]=fib[i-1]+fib[i-2]
return(fib[n-1])
def fib4(n):
a=b=1
for i in range(3,n+1):
c=a+b
a=b
b=c
return(b)
def fib5(n):
M=matrix([[1,1],[1,0]])
F=matrix([[1,0],[0,1]])
for i in range(1,n):
F=F*M
return(F[0,0])
def fib6(n):
F=matrix([[1,0],[0,1]])
F=fibpower(F,n-1)
return(F[0,0])
def fibpower(F,n):
if(n>1):
F=fibpower(F,n/2)
F=F*F
if(n%2==1):
F=F*matrix([[1,1],[1,0]])
return(F)
No comments:
Post a Comment