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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [RETO] Comprobar si un numero es Oblongo/Pronico
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 [5] Ir Abajo Respuesta Imprimir
Autor Tema: [RETO] Comprobar si un numero es Oblongo/Pronico  (Leído 26,605 veces)
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [RETO] Comprobar si un numero es Oblongo/Pronico
« Respuesta #40 en: 17 Agosto 2010, 23:30 pm »

lastima que te salgas del hilo de vb6... las operaciones las realizas en ASM asi que para mi solo el vb6 es tu plataforma de arranque.

P.D.: tardo  Karcrack -> 1,267 msec, aun es lenta!¡.

Ducles Lunas!¡.


« Última modificación: 17 Agosto 2010, 23:43 pm por BlackZeroX » En línea

The Dark Shadow is my passion.
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [RETO] Comprobar si un numero es Oblongo/Pronico
« Respuesta #41 en: 17 Agosto 2010, 23:38 pm »

Todo el codigo de VB6 se ensambla, porque no puedo añadir yo un par de instrucciones? :rolleyes: :xD

Bueno, si no quereis que no valga usar ASM... pero a ver quien hace mas rapido el codigo entonces :silbar: :xD


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [RETO] Comprobar si un numero es Oblongo/Pronico
« Respuesta #42 en: 17 Agosto 2010, 23:49 pm »

a por cierto lo de

n = Sqr(nval)

es solo que nosotros tomamos el valor entero de la raiz, aun que lo "Algebra" esta bien, pero si sabemos que long no va a aceptar los decimales pero si el entero... pues mejor no matamos unas neuronas xP.

al fin y al cabo no hay errores

Código
  1. Option Explicit
  2.  
  3. Dim cT      As New CTiming
  4.  
  5.  
  6.  
  7. Private Sub Form_Load()
  8. Dim i   As Long
  9. Dim n(1)   As Long
  10. Const lim& = 20000
  11. Dim aaa As New Class1
  12.  
  13.  
  14.        cT.Reset
  15.        For i = 0 To lim&
  16.            Call IsOblongoAlgebra(i, 0)
  17.        Next i
  18.        InputBox "", "", "Karcrack -> " & cT.sElapsed & vbCrLf
  19.        MsgBox "Comprovando Coherencias!¡."
  20.        For i = 0 To lim&
  21.            If IsOblongoAlgebra(i, n(0)) And IsOblongoTokes03(i, n(1)) And True Then
  22.                If n(0) <> n(1) Then MsgBox "Error n=" & n(1) & " el real era n=" & n(0) & " del numero " & i & vbCrLf
  23.            End If
  24.        Next i
  25.  
  26.    MsgBox "Fin"
  27.    End
  28. End Sub
  29.  
  30. Private Function IsOblongoAlgebra(ByVal nval As Long, ByRef n As Long) As Boolean
  31.    If (nval And 1) Or (nval And &H80000000) Then Exit Function
  32.  
  33.    n = (Sqr(1 + nval * 4) - 1) / 2
  34.  
  35.    IsOblongoAlgebra = (n * n + n = nval)
  36. End Function
  37.  
  38. '  Tokes 03
  39. Private Function IsOblongoTokes03(ByVal nval As Long, ByRef n As Long) As Boolean
  40.    If (nval And 1) Or (nval And &H80000000) Then Exit Function
  41.    n = Sqr(nval)
  42.    IsOblongoTokes03 = n * n + n = nval
  43. End Function
  44.  

Dulces Lunas!¡.
« Última modificación: 17 Agosto 2010, 23:55 pm por BlackZeroX » En línea

The Dark Shadow is my passion.
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [RETO] Comprobar si un numero es Oblongo/Pronico
« Respuesta #43 en: 17 Agosto 2010, 23:55 pm »

a por cierto lo de

n = Sqr(nval)

es solo que nosotros tomamos el valor entero de la raiz, aun que lo "Algebra" esta bien, pero si sabemos que long no va a aceptar los decimales pero si el entero... pues mejor simplificamos xP
Si, bueno, esa parte la habia entendido... pero no se donde se deduce/"saca" eso... a mi jamas se me hubiese ocurrido... tal vez Tokes sepa decirme :-\
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [RETO] Comprobar si un numero es Oblongo/Pronico
« Respuesta #44 en: 17 Agosto 2010, 23:59 pm »

la respuesta esta en esto, por lo menos YO lo entiendo en estas secciones...

Código:

**  ***  ****  *****  ******  *******
    ***  ****  *****  ******  *******
         ****  *****  ******  *******
               *****  ******  *******
                      ******  *******
                              *******

The value of the Möbius function μ(x) for any pronic number x = n (n + 1), in addition to being computable in the usual way, can also be calculated as

    μ(x) = μ(n) μ(n + 1).

« Última modificación: 18 Agosto 2010, 00:02 am por BlackZeroX » En línea

The Dark Shadow is my passion.
cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: [RETO] Comprobar si un numero es Oblongo/Pronico
« Respuesta #45 en: 18 Agosto 2010, 00:35 am »

Bien, ya ni me molesto Karcrack, la unica idea que se me habia ocurrido despues de leer un poco era utilizar el mmx para calcular la aproximacion de la raiz cuadrada....cosa que ya hiciste :(

mmmmm no es justo ;(
En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: [RETO] Comprobar si un numero es Oblongo/Pronico
« Respuesta #46 en: 18 Agosto 2010, 01:21 am »

che funciona?, no me muestra nada
Código:
Option Explicit
Dim clsIsOblongo As cIsOblongo


Private Sub Form_Load()
    Dim i   As Long
    Dim n   As Long

    Set clsIsOblongo = New cIsOblongo

    For i = 0 To 100
        If clsIsOblongo.IsOblongo(i, n) Then
            Debug.Print n, i
        End If
       
    Next i

End Sub
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [RETO] Comprobar si un numero es Oblongo/Pronico
« Respuesta #47 en: 18 Agosto 2010, 01:27 am »

Dejame comprobar Leandro, algo esta fallando :-\... alguna modificacion que habre hecho antes de subirlo... dame un segundo...
MOD: Es un problema con el stack, por lo visto las funciones en las clases trabajan de otra manera, ya mismo lo reparo ;)

Arreglado el codigo en ASM, ahora debe ser mas rapida, se salta los numeros impares ;)
Código:
http://karcrack.pastebin.com/MUkSE1qs
« Última modificación: 18 Agosto 2010, 02:12 am por Karcrack » En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[DUDA] Comprobar si un número es ondulado
Programación C/C++
Kropt32 2 7,643 Último mensaje 15 Diciembre 2010, 09:04 am
por Kropt32
[JSTL] Como comprobar si una variable es un numero en JSTL
Desarrollo Web
nhaalclkiemr 0 4,623 Último mensaje 10 Abril 2011, 20:42 pm
por nhaalclkiemr
[RETO] Determinar Número Perfecto « 1 2 3 »
Programación Visual Basic
Miseryk 20 9,161 Último mensaje 8 Noviembre 2013, 02:24 am
por rob1104
comprobar numero repetido en un vector
Programación C/C++
MessageBoxA 4 3,342 Último mensaje 26 Junio 2014, 02:05 am
por MeCraniDOS
¿Es posible escapar del reto “vecinos de número”?
Noticias
wolfbcn 6 1,817 Último mensaje 13 Agosto 2019, 18:42 pm
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines