Python - Serie de Fibonacci en Matrices

 
Vista:
sin imagen de perfil
Val: 9
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Serie de Fibonacci en Matrices

Publicado por Jaime (2 intervenciones) el 09/03/2021 16:17:15
Me podrían ayudar con esto por favor

Realizar una función o método que:

Llene una matriz de 5x5 con la serie de fibonacci
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 9
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Serie de Fibonacci en Matrices

Publicado por Jaime (2 intervenciones) el 11/03/2021 16:33:10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
m=[[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]
 
def imprimir_M():
  for f in range(0,5):
    for c in range(0,5):
      print(m[f][c],end=" ")
    print()
 
def fibonacci():
  cont=0
  contador=0
  for f in range(0,5):
    for c in range(0,5):
      m[0][0]=0
      m[0][1]=1
      m[f][c]=m[f][c-2]+m[f][c-1]
      if f>0 and c==0:
        m[f][c]=m[f-1][c-2]+m[f-1][c-1]
      elif f>0 and c==1:
        m[f][c]=m[f-1][c-2]+m[f][c-1]
 
fibonacci()
imprimir_M()


Tengo hecho este codigo pero me gustaria modificarlo para que funcione en distintos tamaños de matrices cuadradas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Serie de Fibonacci en Matrices

Publicado por tincopasan (1082 intervenciones) el 11/03/2021 19:22:56
bien hay un tema que no se si sabés o podés usar y son los generadores.
te muestro como lo haría modificando la función fibonacci y la creación de la matriz en tiempo de ejecución:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#-*- coding: utf -8 -*-
 
filas,columnas = 5,5 #estos valores los pódes pedir hasta con input en tiempo de ejecución
                     #sino con que los modifiques ya está
matriz = []
 
def fibonacci():
    a,b = 1,1
    yield a
    yield b
    while True:
        a,b = b,a+b
        yield b
g = fibonacci()
 
for x in range(filas):
    matriz.append([])  #crea una lista para cada fila
    for z in range(columnas):
        matriz[x].append(next(g)) #agrega un valor para cada columna
 
for j in matriz:
    print(j)

sino podés usar generadores hay que hacer otros cambios, pero esta es la forma más óptima
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar