• Domingo 22 de Diciembre de 2024, 13:22

Autor Tema:  Necesito Ideas  (Leído 3369 veces)

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Necesito Ideas
« en: Martes 27 de Noviembre de 2007, 16:38 »
0
Hola que tal como andan?
Bueno, lo que pasa es que he estado averiguando e intentando hacer el algoritmo del recorrido de matriz en forma de caracol o espiral, no he logrado nada, y quisiera saber si alguien puede darme algunas ideas para lograr solucionarlo.


GRACIAS.

hano

  • Miembro activo
  • **
  • Mensajes: 87
    • Ver Perfil
Re: Necesito Ideas
« Respuesta #1 en: Martes 27 de Noviembre de 2007, 17:31 »
0
No es complicado, si insistes, al final lo sacarás.

Cuando lo tengas, puedes revisar:

http://www.topcoder.com/tc?module=Static&d...06_online_rd_1b

Es el enunciado "Spirals". Es el problema más sencillos del Collegiate Challenge.
El que más rápido lo resolvió correctamente lo hizo en menos de 4 minutos.
                                                                                               
Para programadores
http]
[url=https://hardprogrammer.blogspot.com]https]

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Necesito Ideas
« Respuesta #2 en: Martes 27 de Noviembre de 2007, 23:52 »
0
siguiendo la logica del siguiente link, yo pude hacerlo haca un tiempo

http://foros.solocodigo.com/index.php?act=ST&f=16&t=26658

BYTE
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: Necesito Ideas
« Respuesta #3 en: Miércoles 28 de Noviembre de 2007, 16:19 »
0
Tengo una o mejor unas preguntillas a ver.
La matriz puede tener cualquier dimension?? osea que no importa si es 5x5 o 4x4?? o tiene alguna limitacion??

gracias

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Necesito Ideas
« Respuesta #4 en: Miércoles 28 de Noviembre de 2007, 16:31 »
0
pues NO. no tiene ninguna limitacion en cuanto a dimension.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: Necesito Ideas
« Respuesta #5 en: Miércoles 28 de Noviembre de 2007, 22:25 »
0
Hasta ahora lo que he logrado es lo sgt,

   
          
Citar
for(j=1;j<m;j++){
      i=1;
      JOptionPane.showMessageDialog(null, a[j] );
      }
     
      for(i=1;i<n;i++){
      j=m;
      JOptionPane.showMessageDialog(null, a[j]  );
      }
     
      for(j=m;j>=2;j--){
      i=n;
      JOptionPane.showMessageDialog(null, a[j] );
      }
     
      for(i=n;i>=2;i--){
      j=1;
      JOptionPane.showMessageDialog(null,a[j]  );
      }
 

OJO ,ESTA EN JAVA (es la parte del proceso)

La verdad es que eso es lo unico que se me ha ocurrido , solo hace lo sgt en una matriz.

1        2     3     4
5        6     7     8
9        10   11    12
13      14   15    16

1 2 3 4 8 12 16 15 14 13 9 5,

de ahi no pasa, claro que es porque no he hecho el proceso de la otra parte, pero me di cuenta que lo de adentro o la otra parte del proceso no es la misma para todas las matrices.
Alguien me ayuda con el resto?? please.

Ah, y tal vez no es muy optimizado lo que hice y hay otra forma mas facil , por favor CRITICAR LO que hice si ven que no esta bien.

GRACIAS NUEVAMENTE.

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Necesito Ideas
« Respuesta #6 en: Viernes 30 de Noviembre de 2007, 00:25 »
0
weno pues.

Aqui te va el codigo. Pero es de como cargar una matriz en forma de espiral.

Código: Text
  1.  
  2.    lder:=DimCol; linf:=DimFil;
  3.    lizq:=1;      lsup:=2;
  4.    f:=1;         c:=1;
  5.    opcion:=1;
  6.  
  7.    for k:=1 to (DimFil*DimCol) do
  8.    begin
  9.        case opcion of
  10.          1:begin
  11.                A[f,c]:=k;
  12.                inc(c);
  13.                if c &#62; lder then
  14.                begin
  15.                   opcion:=2;
  16.                   dec (lder);
  17.                   dec (c);
  18.                   inc (f);
  19.                end;
  20.            end;
  21.          2:begin
  22.                A[f,c]:=k;
  23.                inc (f);
  24.                if f &#62; linf then
  25.                begin
  26.                    dec (f);
  27.                    dec (c);
  28.                    opcion:=3;
  29.                    dec(linf);
  30.  
  31.                end;
  32.            end;
  33.          3:begin
  34.                A[f,c]:=k;
  35.                dec (c);
  36.                if c &#60; lizq then
  37.                begin
  38.                     inc (c);
  39.                     dec (f);
  40.                     opcion:=4;
  41.                     inc (lizq);
  42.  
  43.                end;
  44.             end;
  45.          4:begin
  46.                A[f,c]:=k;
  47.                dec (f);
  48.                if f &#60; lsup then
  49.                begin
  50.                    inc (f);
  51.                    inc (c);
  52.                    opcion:=1;
  53.                    inc (lsup);
  54.                end;
  55.  
  56.            end;
  57.          end;
  58.  
  59.    end;
  60.  
  61.  


BYTE
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"