Reto De La Ultratumba


Ir a la página 1, 2  Siguiente

Objetivo: Reto De La Ultratumba
Hola amigos,

con este reto no tendréis un Orfèo que os pueda reconducir a la luz:

Usar solamente 3 byte para almacenar en memoria la representación del número100000.


...usaríais solamente un stream?


" Lasciate ogni speranza, o voi che entrate. "
(Dante Alighieri - La divina commedia)

última edición por vuott el Lunes, 22 Septiembre 2014, 23:50; editado 3 veces
Perfil MP  
Objetivo: Re: Reto De La Ultratumba
Este reto me excede. Me rindo.

Vae Victis!

Perfil MP  
Objetivo: Re: Reto De La Ultratumba
shordi escribió: [Ver mensaje]
Este reto me excede. Me rindo.

Vae Victis!


Nooooo !

Noli cedere, shordi !

última edición por vuott el Martes, 23 Septiembre 2014, 10:23; editado 2 veces
Perfil MP  
Objetivo: Re: Reto De La Ultratumba
Hola Vuott.

Yo (ya salió el yo) intentaría crear retos algo más sencillos para un nivel de conocimiento general.
Difícil, naturalmente, sobre todo por la variedad de conocimiento que tenemos cada usuario de Gambas.

Por ahora te centras en binario. No sé si el tema de binario es algo que vayamos a tratar a diario en Gambas.
Debemos conocer el binario, naturalmente, pero a la larga tendríamos que hacer algo muy concreto para
trabajar con el, en una aplicación de escritorio. La variedad es grande, desde luego.

Saludos

Objetivo: Re: Reto De La Ultratumba
No sé si van por ahí los tiros, pero un número entero ocupa 4 bytes, por lo tanto descartado.

Entonces, hay que usar una cadena que no exceda de 3 caracteres que son 3 bytes... pero las cadenas en gambas tienen un carácter adicional de "final de cadena", por lo que la cadena final sería de nuevo 4 bytes.

La única forma de representar ese número con el mínimo de caracteres es con la notación científica: 1E5 - Tres bytes sin contar el final de cadena. El método para almacenarlo en memoria es trivial (si es que esta es la solución).

100000 = 1 * 105 = 1e5

Saludos

Perfil MP  
Objetivo: Re: Reto De La Ultratumba
jguardon escribió: [Ver mensaje]

La única forma de representar ese número con el mínimo de caracteres es con la notación científica: 1E5 - Tres bytes sin contar el final de cadena. El método para almacenarlo en memoria es trivial (si es que esta es la solución).

100000 = 1 * 105 = 1e5

Hooola jguardon,

este reto espera una o mas respuestas.

Bueno, quien sabe si otros amigos propusieran otras soluciones posibles.

Saludos.

última edición por vuott el Martes, 23 Septiembre 2014, 22:59; editado 1 vez
Perfil MP  
Objetivo: Re: Reto De La Ultratumba
Bueno, el mi aporte es:

Public Sub Main()

Dim bb As Byte[] = [&01, &86, &A0]


'...y en efecto:
Print bb.Count

End

Perfil MP  
Objetivo: Re: Reto De La Ultratumba
Hola

Imaginaba algo así, por supuesto, pero no identifico los dos últimos bytes. ¿Corresponden a valores ascii? No consigo identificar su significado.

[&01, &86, &A0]


Saludos

Perfil MP  
Objetivo: Re: Reto De La Ultratumba
Para insertar la representación del numero 10000 en 3 byte, yo usé la su representación hexadecimal: 0186A0 dividida en los sus 3 byte componentes. Despues he asignado cada byte componente a un elemento del array de tipo Byte[ ].
Es decir:
bb[0] = &01
bb[1] = &86
bb[2] = &A0


Si yo queiro utilizar practicamente esta representación hexadecimal, dividida en 3 byte, reconstruyo el numero decimal 100000 por ejemplo en esta manera:

Public Sub Main()

Dim q As Byte
Dim bb As Byte[] = [&01, &86, &A0]
Dim ris As Integer

Do
ris = (ris * CInt(2 ^ 8)) Or bb[q]
Inc q
Loop Until q = 3

Print ris

End

última edición por vuott el Lunes, 29 Septiembre 2014, 00:49; editado 1 vez
Perfil MP  
Objetivo: Re: Reto De La Ultratumba
... vais a salir locos, os lo aseguro....

Perfil MP  
Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1996s (PHP: -40% SQL: 140%)
Consultas SQL: 27 - Debug off - GZIP Activado