Foros del Web » Programando para Internet » Python »

Diagonal secundaria de matriz.!

Estas en el tema de Diagonal secundaria de matriz.! en el foro de Python en Foros del Web. Hola, estuve buscando ejercicios que hacer, y me encontre con estos: realizar una matriz y imprimir la diagonal principal, y realizar una matriz y imprimir ...
  #1 (permalink)  
Antiguo 20/06/2010, 19:39
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Diagonal secundaria de matriz.!

Hola, estuve buscando ejercicios que hacer, y me encontre con estos: realizar una matriz y imprimir la diagonal principal, y realizar una matriz y imprimir la diagonal secundaria.

Al primero lo hize sin problemas haciendo esto:
Código:
m=int(raw_input("Ingrese el número de filas: "))
n=int(raw_input("Ingrese el número de columnas: "))


A=[]
for j in range(m):
  A.append([0]*n)
  
print "Lectura de la matriz A"
for j in range(m):
  for k in range(n):
    A[j][k] = float(raw_input("Dame el componente (%d,%d): " %(j+1,k+1)))
    
for i in A:
  print i

C=[]      
for k in range(m):
  for j in range(n):
    if k==j:
      C.append (A[j][k])
      
print  C
Pero al segundo, no lo puedo hacer xq no me doy cuenta que condicion poner :S, una solucion que se me ocurre es empezar a pasar los elementos de la matriz de atras para adelante, pero tampoco se me ocurre como hacerlo.!
Seria bueno que me ayuden.!

Ej: la diagonal secundaria de la matriz
[1,2,3]
[3,2,5]
[8,7,9]

es [3,2,8]

Desde ya muchas gracias.!
  #2 (permalink)  
Antiguo 20/06/2010, 21:42
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Diagonal secundaria de matriz.!

Donde j e i son los indices y n es el orden de la matriz.

Diagonal secundaria : son los elementos aij con i+j = n+1
Código Python:
Ver original
  1. orden = min(m, n)
  2. for i in xrange(orden):
  3.     for j in xrange(orden):
  4.         if i + j == n  + 1:
  5.             C.append(A[i][j])
  6. print C

Etiquetas: matriz
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:00.