Título: Pequeño reto Publicado por: pkj en 13 Junio 2015, 21:52 pm Quiero proponeros una adivinanza y un reto:
Adivinanza: ¿Que hace esta función que he inventado? Os dejo las variables con nombres descriptivos para que podais seguirla mejor. Los mas iniciados seguro que lo adivinan en un vistazo y se ríen de mis métodos. El caso es que a veces se me enciende la bombilla, pero parpadea mucho :P Reto: Mejorar esta función. Fácil. No es que tenga demasiado interés en que sea más rápida, aunque me gustaría ver el sistema que usaría alguien con conocimientos de matemáticas (o igual hay una API para esto :D). Yo en el colegio nunca presté atención :( He pensado que son dos buenos retos. Espero que os animéis muchos. Si se me ocurre como, yo también la intentaré mejorar (bueno, mas rápido ya se me está ocurriendo: puedo quitar los xor si copio 2 veces el código... o quizás no). Haced vuestras propias versiones una vez que sepais lo que hace. Código
Lo dicho. Animaos y usad el coco un poco. Saludos EDIT: ¿que pasa? ¿no os interesa? ¿estáis deliberando? ¿me he pasado con el reto? Igual no es tan fácil como pensé. ¿queréis que diga la solución? ¿queréis una pista? Título: Re: Pequeño reto Publicado por: pkj en 16 Junio 2015, 20:34 pm Para los que quieran intentarlo, aquí os dejo una pista.
Esta es su hermanita pequeña. La otra me costó más sacarla (que borrico). Código
Las dos las tengo ya mejoradas reemplazando las operaciones mas gordas por sus resultados. Mas código pero más velocidad. Espero que con esto al menos sepáis lo que son los Trits :D Saludos Título: Re: Pequeño reto Publicado por: pkj en 6 Julio 2015, 10:15 am Vaya decepción. Parece que ni siquiera lo habéis intentado.
Lo explicaré brevemente para no haceros perder vuestro tiempo. Las hice para un programa de reducciones 1X2. La segunda función, la pequeña, compara 2 números binarios a partir de sus equivalentes decimales y devuelve las diferencias. Compara 2 dobles a partir de sus números de orden. La primera función, la grande, hace lo mismo pero con 2 valores que representan dos potencias de 3. Compara 2 triples. Las dos se pueden mejorar mucho, pero no voy a entrar en detalles. Saludos Título: Re: Pequeño reto Publicado por: BlackZeroX en 6 Julio 2015, 18:54 pm Lo que hace es contar los bits encendidos de la diferencia de los bits de dos valores.
Código
P.D.: No tengo compilador :(. Dulces Lunas!¡. Título: Re: Pequeño reto Publicado por: pkj en 6 Julio 2015, 20:27 pm Buen trabajo, BlackZeroX, algo tarde pero muy bueno.
Solo he tenido que retocarla un pelín y es mucho mas rápida que la de muestra. Parece incluso más rápida que la más rápida que he hecho yo :P Código
En VB6 un Long tiene 32 bits, en VB.Net creo que son 64 ¿Veis los demás como solo era ponerse? Saludos Título: Re: Pequeño reto Publicado por: BlackZeroX en 6 Julio 2015, 22:34 pm ¿Veis los demás como solo era ponerse? Si gustas retos aquí tienes: http://foro.elhacker.net/programacion_visual_basic/recopilacion_de_retos_vbclassic_por_79137913-t360748.0.html;msg1743290#msg1743290 Si puedes superar esta te ganas mi respeto :). IsNumeric_???? Version VB6 http://foro.elhacker.net/programacion_visual_basic/reto_reemplazo_de_funcion_isnumeric-t336067.0.html;msg1652210#msg1652210 Version en C: http://foro.elhacker.net/programacion_cc/cisnumeric_vb6_a_c-t336564.0.html;msg1652677#msg1652677 Dulces Lunas!¡. Título: Re: Pequeño reto Publicado por: pkj en 7 Julio 2015, 09:55 am Si gustas retos aquí tienes: http://foro.elhacker.net/programacion_visual_basic/recopilacion_de_retos_vbclassic_por_79137913-t360748.0.html;msg1743290#msg1743290 Es lo que me animó a poner el reto. Estuve mirando, e incluso he comentado algo, pero en general acabo mareado si intento descifrar los codigos :P Trabajais con cosas que nunca he visto o que no entiendo y me hago un lio. Si puedes superar esta te ganas mi respeto :). He echado un vistazo y me parece que teneis el tema bien trillado. No creo que se me ocurra nada nuevo. Ni siquiera he usado nunca esa función IsNumeric :D De todos modos, al menos lo voy a pensar. Igual salta la liebre. Saludos Título: Re: Pequeño reto Publicado por: pkj en 7 Julio 2015, 10:29 am Algo debo estar haciendo mal, porque mi nombre no aparece en la lista de errores :o
Código
O eso o 7913+pkj = 1Genius EDIT: No, ahora me estoy fijando que 7913 no necesita socios :D Su nombre tampoco aparece en la lista de fallos. EDIT2: En realidad hemos pensado lo mismo pero al revés. Supongo que parece que lo he copiado, pero ha sido pura casualidad. Intentaré buscar otro modo, aunque ya digo que esto esta muy trillado. EDIT3: Lo siento. Solo se me ocurren variantes de lo mismo. Si lo que quiero es saber si es un número no se me ocurre nada mejor que esto, y ya que funciona creo que me conformaré: Código
Por cierto, pensaba que ninguna funcion superaba el test y resulta que hay varias que tampoco dan errores, solo que como no dan errores pasan desapercibidas y no lo habia notado. Por eso cuando me ha funcionado a la primera no me lo creia. Copie la funcion de 7913 para evitarme escribir el encabezado y cuando vi que era parecida a lo que queria hacer, pense que habia mejorado esa funcion, cuando de por si ya funcionaba. En fin, creo que darle mas vueltas es complicarse la vida. Saludos Título: Re: Pequeño reto Publicado por: BlackZeroX en 7 Julio 2015, 22:16 pm Como demonio borro mi msg ...
Dulces Lunas!¡. Título: Re: Pequeño reto Publicado por: 79137913 en 21 Agosto 2015, 19:54 pm HOLA!!!
XD estaban hablando de mi y mi reto... Black lo gano bien ganado no hay mucho que hacer ni mucho que inventar XD :silbar: GRACIAS POR LEER!!! |