Friday, November 4, 2011

Pit-one

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)

No comments:

Post a Comment