Loading [MathJax]/extensions/TeX/AMSmath.js

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