elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [RETO] ¿Fácil? Buscando los números de Lychrel
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 2 [3] 4 Ir Abajo Respuesta Imprimir
Autor Tema: [RETO] ¿Fácil? Buscando los números de Lychrel  (Leído 13,574 veces)
Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: [RETO] ¿Fácil? Buscando los números de Lychrel
« Respuesta #20 en: 18 Agosto 2010, 22:28 pm »

Interesante, no conozco esos truquillos, supongo que es mas rapido que convertirlo con CDbl(), no?¿

DoEvents¡! :P


En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [RETO] ¿Fácil? Buscando los números de Lychrel
« Respuesta #21 en: 18 Agosto 2010, 22:32 pm »

Deberia ser mas rapida mi funcion de lngReverse() que el StrReverse()... Alguien ha provado? XD


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [RETO] ¿Fácil? Buscando los números de Lychrel
« Respuesta #22 en: 18 Agosto 2010, 22:45 pm »


no comprove coherencias!¡, por lo cual no comprove que estubieran bien dichas funciones

Código
  1.  
  2. Tokes: 128,759 msec
  3. [D4N93R]: 10.388,359 msec
  4. Raul338: 308,872 msec
  5. Novlucker : 131,863 msec
  6. BlackZeroX (v 2): 96,643 msec
  7. BlackZeroX (v 3): 35,655 msec
  8.  
  9.  

http://infrangelux.sytes.net/FileX/index.php?file=/BlackZeroX/Comprovaciones/Lychrel/Gral%20Lychrel%2001.zip&dir=/BlackZeroX/Comprovaciones/Lychrel&

P.D.: En efecto Karcrack es mas rapido!¡.

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Tokes

Desconectado Desconectado

Mensajes: 140


Ver Perfil
Re: [RETO] ¿Fácil? Buscando los números de Lychrel
« Respuesta #23 en: 18 Agosto 2010, 23:29 pm »

Aquí dejo un nuevo código, basado en la función que nos mostró Karcrack.

Código:
Private Function EsNumLychrel5(ByVal num As Long, ByRef numeroFinal, Optional ByVal iteraciones As Long = 50) As Boolean
Dim n As Double, nrev As Double, sp As String
    If num And &H80000000 Then Exit Function
    n = num
    sp = "1234"
    Do While iteraciones > 1
        nrev = dblReverse(n)
        If n = nrev Then Exit Function
        n = n + nrev
        iteraciones = iteraciones - 1
    Loop
    nrev = dblReverse(n)
    If n = nrev Then Exit Function
    EsNumLychrel5 = True
    numeroFinal = n
End Function

Y la función de Karcrack (modificada para que pueda manejar doubles y no sólo longs):

Código:
Public Function dblReverse(ByVal lDbl As Double) As Double
    Do
        dblReverse = dblReverse * 10 + (lDbl - (10 * Fix(lDbl / 10)))
        lDbl = Fix(lDbl / 10)
    Loop While lDbl > 0
End Function

     Efectivamente es más rápido.

     Saludos....
     Y muchas gracias Karcrack.
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [RETO] ¿Fácil? Buscando los números de Lychrel
« Respuesta #24 en: 18 Agosto 2010, 23:44 pm »


BlackZeroX (v 3)

esta en base a la funcion de Karcrack xP
En línea

The Dark Shadow is my passion.
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: [RETO] ¿Fácil? Buscando los números de Lychrel
« Respuesta #25 en: 19 Agosto 2010, 00:14 am »

porque siempre las mias es una de las mas lentas? :xD

bueno, con la base de Karcrack y tokes, me quedo esto, un poquitin mas rapido que la de tokes :P pero muchisimo mas rapida que la mia anterior

Código
  1. Public Function EsLychrel02(ByVal numero As Double, ByRef numeroFinal As Double, Optional maxVueltas As Long = 100) As Boolean
  2.    If &H80000000 And maxVueltas Then Exit Function
  3.    If numero < 10 Then Exit Function
  4.    numeroFinal = numero
  5.  
  6.    numero = dblReverse(numeroFinal)
  7.    If numeroFinal = numero Then
  8.        numeroFinal = numero + numero
  9.        Exit Function
  10.    End If
  11.  
  12.    For maxVueltas = maxVueltas To 1 Step -1
  13.        numero = dblReverse(numeroFinal)
  14.        If numeroFinal = numero Then Exit Function
  15.        numeroFinal = numeroFinal + numero
  16.    Next
  17.    EsLychrel02 = True
  18. End Function
  19.  
« Última modificación: 19 Agosto 2010, 01:20 am por raul338 » En línea

Tokes

Desconectado Desconectado

Mensajes: 140


Ver Perfil
Re: [RETO] ¿Fácil? Buscando los números de Lychrel
« Respuesta #26 en: 19 Agosto 2010, 00:29 am »

Disculpen, hace rato puse mi código pero con instrucciones basura que nada que ver con el proceso (era para probar ciertas funciones). Aquí se los dejo corregido. Tiene prácticamente la misma velocidad de antes, pero sin ese código basura.

Código:
Private Function EsNumLychrel5(ByVal num As Long, ByRef numeroFinal As Double, Optional ByVal iteraciones As Long = 50) As Boolean
Dim n As Double, nrev As Double
    If num And &H80000000 Then Exit Function
    n = num
    Do While iteraciones > 0
        nrev = dblReverse(n)
        If n = nrev Then Exit Function
        n = n + nrev
        iteraciones = iteraciones - 1
    Loop
    nrev = dblReverse(n)
    If n = nrev Then Exit Function
    EsNumLychrel5 = True
    numeroFinal = n
End Function
En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: [RETO] ¿Fácil? Buscando los números de Lychrel
« Respuesta #27 en: 19 Agosto 2010, 00:47 am »

creo que por el momento la unica que funciona bien es la de Novlucker las demas no esta trabajando correctamente

solo tengo mis dudas con la de Novlucker  con los numeros del 1 al 9 ya que dan numeros simples y no se cumple la condición de capicua

la de raul338  tambien anda bien con el mismo problea que el de Novlucker   y tambien pero hay un problema con el 11 ya que da como resultado 11 cuando deberia ser 22


@BlackZeroX

 0 = blucle infinito
la funcion deve devolver true si no se logra el capicua en los determinados ciclos
tambien el problema del 1 al 10 pero peor, muestra erronos

@Tokes no estas devolviendo "numeroFinal" correctamente.



En línea

Tokes

Desconectado Desconectado

Mensajes: 140


Ver Perfil
Re: [RETO] ¿Fácil? Buscando los números de Lychrel
« Respuesta #28 en: 19 Agosto 2010, 00:59 am »

Disculpen, es cierto. Según yo ya devuelvo numero final en este código.

Código:
Private Function EsNumLychrel5b(ByVal num As Long, ByRef numeroFinal As Double, Optional ByVal iteraciones As Long = 50) As Boolean
Dim n As Double, nrev As Double
    If num And &H80000000 Then Exit Function
    n = num
    Do While iteraciones > 0
        nrev = dblReverse(n)
        If n = nrev Then
            numeroFinal = n
            Exit Function
        End If
        n = n + nrev
        iteraciones = iteraciones - 1
    Loop
    nrev = dblReverse(n)
    If n = nrev Then Exit Function
    EsNumLychrel5b = True
    numeroFinal = n

Si alguien gusta hacerle alguna modiicación ¡Adelante!
En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: [RETO] ¿Fácil? Buscando los números de Lychrel
« Respuesta #29 en: 19 Agosto 2010, 01:01 am »

Citar
Si alguien gusta hacerle alguna modiicación ¡Adelante!
Si, yo si se la voy ha hacer, aqui esta:
Código
  1. Private Function EsNumLychrel5b(ByVal num As Long, ByRef numeroFinal As Double, Optional ByVal iteraciones As Long = 50) As Boolean
  2. Dim n As Double, nrev As Double
  3.    If num And &H80000000 Then Exit Function
  4.    n = num
  5.    Do While iteraciones > 0
  6.        nrev = dblReverse(n)
  7.        If n = nrev Then
  8.            numeroFinal = n
  9.            Exit Function
  10.        End If
  11.        n = n + nrev
  12.        iteraciones = iteraciones - 1
  13.    Loop
  14.    nrev = dblReverse(n)
  15.    If n = nrev Then Exit Function
  16.    EsNumLychrel5b = True
  17.    numeroFinal = n
  18. End Function
Faltaba el End Function... :laugh: :laugh:

DoEvents¡!
:P
En línea

Páginas: 1 2 [3] 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[RETO+Python] Buscando rangos « 1 2 »
Scripting
Novlucker 13 8,115 Último mensaje 31 Enero 2011, 18:30 pm
por Karcrack
Sacar numeros de una ecuacion? reto? « 1 2 »
Programación Visual Basic
Edu 12 5,310 Último mensaje 14 Marzo 2011, 16:58 pm
por 79137913
Reto relativamente fácil « 1 2 »
Desafíos - Wargames
ace332 15 11,287 Último mensaje 23 Enero 2012, 19:46 pm
por Caster
Reto KeygenMe #2 [Facil]
Ingeniería Inversa
jEUDi17 7 4,637 Último mensaje 28 Agosto 2012, 23:29 pm
por Flamer
Reto SQLi -1-[fácil]
Desafíos - Wargames
elh4ck3r 3 3,762 Último mensaje 20 Julio 2018, 22:14 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines