fork download
  1. def matNula(f, c):
  2. m = []
  3. for i in range(f):
  4. m.append([0]*c)
  5. return m
  6.  
  7. def expmat(m, e):
  8. if e==1:return m
  9. r= expmat(m,e//2)
  10. r =mulMat(r,r)
  11. if e % 2:r=mulMat(r, m)
  12. return r
  13.  
  14. def mulMat(m1,m2):
  15. acum = matNula(len(m1),len(m2[0]))
  16. for i in range(len(m1)):
  17. for j in range(len(m2[0])):
  18. for k in range(len(m2)):
  19. acum[i][j]+= m1[i][k]*m2[k][j]
  20. return acum
  21.  
  22. def f(n):
  23. if n <3:return 1
  24. coeficientes = [[1,1],[1,0]]
  25. casos_base = [[1],[1]]
  26. return mulMat(expmat(coeficientes,n-1), casos_base)[0][0]
Success #stdin #stdout 0.04s 9660KB
stdin
Standard input is empty
stdout
Standard output is empty