[RETO] Matriz de Cuenta Circular 7913

Iniciado por 79137913, 10 Enero 2011, 16:57 PM

0 Miembros y 2 Visitantes están viendo este tema.

Psyke1

Tengo aún más examenes... :-( :¬¬
Ya lo haré cuando pueda.

DoEvents! :P

BlackZeroX

Cita de: 79137913 en 12 Enero 2011, 14:28 PM
Bueno... parece que no va a agregarse nadie mas

No te creas algunos tenemos unos contratiempos ( un servidor en la facultad ).

Dulces Lunas!¡.
The Dark Shadow is my passion.

79137913

#12
HOLA!!!

Black:
Perdon :P.

Cita de: BlackZeroX▓▓▒▒░░ en 13 Enero 2011, 07:20 AM
( un servidor en la facultad ).

:o Que le paso al server?

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

Psyke1

CitarQue le paso al server?
:xD :laugh:

Se refiere a él mismo:
Citaryo opino que sí
=
Citarun servidor opina que sí

DoEvents! :P

79137913

HOLA!!!

XD bueno igual no entendi :P

En un rato posteo el code que ya lo tengo bastante bien.

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

79137913

#15
HOLA!!!

Mi codigo:

Código (vb) [Seleccionar]
Private Function Cuenta_Circular7913(N&, m() As Integer, TIPO As Boolean) 'TIPO: FALSE = BLOQUE, TRUE = ESPIRAL
   Dim X        As Long
   Dim Y        As Long
   Dim MEDIO    As Long ' N/2
   Dim CT       As Long
   
       'If N Mod 2 <> 0 Then Exit Function
       'If N > 180 Then Exit Function
       'If N < 2 Then Exit Function
       
       ReDim m(N, N)
       
       MEDIO = N / 2
       
       For X = MEDIO + 1 To N
           m(N - X, N - X) = 7
           m(X, N - X) = 9
           m(N - X, X) = 1
           m(X, X) = 3
       Next
       
       If TIPO Then 'ESPIRAL
       
           Dim SIGUIENTE   As Long
           Dim SIGUIENTE_2 As Long 'SIGUIENTE * 2
           Dim SIGUIENTE_3 As Long 'SIGUIENTE * 3
           
           For Y = 0 To MEDIO
               CT = CT + SIGUIENTE_3
               SIGUIENTE = N - (Y * 2) - 1
               SIGUIENTE_2 = SIGUIENTE * 2
               SIGUIENTE_3 = SIGUIENTE * 3
               
               For X = (Y + 1) To N - (Y + 1)
                   CT = CT + 1
                   m(X, Y) = CT
                   m(N - Y, X) = CT + SIGUIENTE
                   m(N - X, N - Y) = CT + SIGUIENTE_2
                   m(Y, N - X) = CT + SIGUIENTE_3
               Next
           Next
           
       Else 'TRIANGULAR
       
           Dim MEDIO2     As Long 'MEDIO ^ 2
           Dim MEDIO2_2   As Long 'MEDIO2 * 2
           Dim MEDIO2_3   As Long 'MEDIO2 * 3
           
           MEDIO2 = MEDIO * MEDIO
           MEDIO2_2 = MEDIO2 * 2
           MEDIO2_3 = MEDIO2 * 3
           
           For Y = 0 To MEDIO
               For X = (Y + 1) To N - (Y + 1)
                   CT = CT + 1
                   m(X, Y) = CT
                   m(N - Y, X) = CT + MEDIO2
                   m(N - X, N - Y) = CT + MEDIO2_2
                   m(Y, N - X) = CT + MEDIO2_3
               Next
           Next
       End If
End Function



TEST:
"TEST HECHO POR 79137913"
Cuenta_Circular7913(180, Matriz, False)           : 0,456 msec
Leandro_Cuenta_Circular7913(180, Matriz, False)   : 0,522 msec
Cuenta_Circular7913(180, Matriz, True)            : 0,424 msec
Leandro_Cuenta_Circular7913(180, Matriz, True)    : 0,398 msec

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*