Autor
|
Tema: [RETO] Comprobar si un numero es Oblongo/Pronico (Leído 26,605 veces)
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
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
Mensajes: 2.416
Se siente observado ¬¬'
|
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
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 Option Explicit Dim cT As New CTiming Private Sub Form_Load() Dim i As Long Dim n(1) As Long Const lim& = 20000 Dim aaa As New Class1 cT.Reset For i = 0 To lim& Call IsOblongoAlgebra(i, 0) Next i InputBox "", "", "Karcrack -> " & cT.sElapsed & vbCrLf MsgBox "Comprovando Coherencias!¡." For i = 0 To lim& If IsOblongoAlgebra(i, n(0)) And IsOblongoTokes03(i, n(1)) And True Then If n(0) <> n(1) Then MsgBox "Error n=" & n(1) & " el real era n=" & n(0) & " del numero " & i & vbCrLf End If Next i MsgBox "Fin" End End Sub Private Function IsOblongoAlgebra(ByVal nval As Long, ByRef n As Long) As Boolean If (nval And 1) Or (nval And &H80000000) Then Exit Function n = (Sqr(1 + nval * 4) - 1) / 2 IsOblongoAlgebra = (n * n + n = nval) End Function ' Tokes 03 Private Function IsOblongoTokes03(ByVal nval As Long, ByRef n As Long) As Boolean If (nval And 1) Or (nval And &H80000000) Then Exit Function n = Sqr(nval) IsOblongoTokes03 = n * n + n = nval End Function
Dulces Lunas!¡.
|
|
« Última modificación: 17 Agosto 2010, 23:55 pm por BlackZeroX »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
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
Mensajes: 3.158
I'Love...!¡.
|
la respuesta esta en esto, por lo menos YO lo entiendo en estas secciones... ** *** **** ***** ****** ******* *** **** ***** ****** ******* **** ***** ****** ******* ***** ****** ******* ****** ******* *******
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
|
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
|
|
|
|
LeandroA
|
che funciona?, no me muestra nada 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
Mensajes: 2.416
Se siente observado ¬¬'
|
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 http://karcrack.pastebin.com/MUkSE1qs
|
|
« Última modificación: 18 Agosto 2010, 02:12 am por Karcrack »
|
En línea
|
|
|
|
|
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
|
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
|
10 Abril 2011, 20:42 pm
por nhaalclkiemr
|
|
|
[RETO] Determinar Número Perfecto
« 1 2 3 »
Programación Visual Basic
|
Miseryk
|
20
|
9,161
|
8 Noviembre 2013, 02:24 am
por rob1104
|
|
|
comprobar numero repetido en un vector
Programación C/C++
|
MessageBoxA
|
4
|
3,342
|
26 Junio 2014, 02:05 am
por MeCraniDOS
|
|
|
¿Es posible escapar del reto “vecinos de número”?
Noticias
|
wolfbcn
|
6
|
1,817
|
13 Agosto 2019, 18:42 pm
por @XSStringManolo
|
|