¡Invita a tus amigos a jugar Pengle!
hola a todos como puedo recorrer una matriz de forma diagonal?? es decir que en vez de pasar por las filas y columnas , se recorra por TODAS las diagonalesmatrices = arreglo ...mostrar más
Actualizar : yo conzco como hacer la diagonal principal........ tambien entiendo lo de ...mostrar más
Actualizar 2: no es que me hgan la tarea es que den sugerencia NOPIDO CODIGOS pero ...mostrar más
Mejor respuesta
Hebb respondida hace 6 años
Piensa en cómo lo haces con lápiz y papel:
Recorriendo sólo las diagonales que hay bajo la diagonal principal,terminas recorriendo toda la matriz. ¿Por qué? Bien, esto es exactamente lo que haces:
1. Para cada fila de la matriz, te sitúas en la primera columna y vas recorriendo la diagonal correspondiente.2. Llegas a la última fila, así que el paso siguiente es continuar con la siguiente columna pero desde la primera fila.
3. Haces esto hasta que llegas a la última columna, y luego empiezas atrabajar con la siguiente diagonal.
Bien, eso es lo que haces cuando trabajas sobre papel. Pero ¿cómo implementarías algo así en un ordenador? La solución es sencilla: imagina cómo funciona uncontador cíclico; es decir, aquel que, antes de llegar a un límite N, empieza otra vez desde cero. Funciona como un contador normal, sólo que el incremento no es:
i = i + 1
sino:
i = (i + 1) modN,
es decir, el módulo entre i + 1 y N. Esto implica que, si i + 1 < N, entonces el contador se incrementa normalmente. La excepción aparece cuando i + 1 >= N; en ese caso, se calcula el resto dela división entera entre (i + 1) y N, y, evidentemente, este resto está comprendido entre 0 y N - 1. De esta manera, cuando tu contador llega a N, vuelve a empezar.
Esto es lo que tienes que hacerpara contar las filas. Si tu matriz es M y tu contador de diagonales es k, no debes recorrer los elementos de la matriz con
M[i+k, i],
sino con
M[(i+k) mod N, i]
siendo N el orden...
Regístrate para leer el documento completo.