Skip to content

Números en base Fibinaria

by en 10/02/2014

¡Hola!

Vamos un lunes más con nuestro acertijo semanal. La semana pasada surgieron los números binarios. No es la primera vez que ocurre; si no sabes lo que son y quieres refrescar la memoria, puedes mirar antes nuestro acertijo sobre paridad o, un poco más difícil, el de la máquina de monedas.

Además, ya ha surgido en un acertijo anterior la sucesión de Fibonacci. Consiste en una secuencia de números que comienza con dos 1’s. Luego, cada término de la sucesión se calcula sumando los dos números anteriores:

  • Fib(0) = 1
  • Fib(1) = 1
  • Fib(i) = Fib(i-1) + Fib(i-2)

Como ejemplo, el inicio de la sucesión está compuesta por los números:

1, 1, 2, 3, 5, 8, 13, 21, 34, …

En el acertijo que os proponemos hoy, vamos a mezclar la numeración binaria con los números de Fibonacci. En binario, el dígito de más a la izquierda tiene el valor 1 (=20); el siguiente tiene valor 2 (=21), el siguiente valor 4 (=22) y así sucesivamente. En base Fibinaria, sin embargo, cada dígito tiene el valor de un número de la sucesión de Fibonacci, habiendo quitado el primer 1 para no repetir. Por ejemplo, el número, en base Fibinaria, 1010 es igual a:

1×5 + 0×3 + 1×2 + 0×1 = 7.

Curiosamente, muchos números se pueden representar de varias formas. Por ejemplo el número 10 se puede escribir como 8+2 (10010) o como 5+3+2 (1110). Para ser considerado correcto, un número fibinario debe tener el mayor número de dígitos posible, por lo que no se pueden nunca tener dos fibits consecutivos a 1.

Con estas condiciones, sumar dos números fibinarios no siempre es sencillo. Aquí van algunos ejemplos:

  • 1000 + 1 = 1001
  • 10000 + 1000 = 100000
  • 10000 + 10000 = 100100

Y ahora… ¡te toca a ti! 🙂 ¿Cuál es el resultado de estas sumas?

  • 1 + 1
  • 10 + 10
  • 100 + 100
  • 1000 + 1000
  • 10000 + 10100

Como siempre, si das con la solución y la programas, puedes probarla aquí. Pero ¡cuidado! En ese problema los números pueden llegar a tener hasta 100 fibits, y eso es un número muy grande 🙂 ¿Eres capaz de hacerlo sin convertir los números a decimal?

¡Hasta el domingo!

Anuncios
4 comentarios
  1. Gualterio permalink

    Ey! Este problema lo tengo resuelto en el juez online de la Universidad de Valladolid que referenciáis desde hace tiempo, así que esta vez no voy a poner mi solución 🙂
    Y sí, yo lo resolví manejando bits en vez de convirtiendo a decimal 😉

  2. David permalink

    Uy, que casi se me pasa esta semana..

    1 + 1 = 10
    10 + 10 = 101
    100 + 100 = 1001
    1000 + 1000 = 10010
    10000 + 10100 = 101001

    Salu2,
    David =)

    • Luis permalink

      1000+1000=10010 esta fue tu solución la cual es correcta,ahora esta esta es la mía la cual no se porque es incorrecta si el resultado parece ser el mismo:
      1000+1000=1110.
      Podrías por favor explicarme mi error.Saludos.

      • Hola Luis,

        Efectivamente, 1000 + 1000 = 1110 en base fibinaria. Sin embargo, comentábamos que, como un mismo número se puede representar de múltiples formas en base fibinaria, para ser considerado correcto, un número fibinario debe tener el mayor número de dígitos posible, lo que tiene como efecto lateral que no se pueden nunca tener dos fibits consecutivos a 1. Por tanto, entre los números en base fibinaria 1110 y 10010 (para representar el número 10 decimal) el que consideramos correcto es el segundo, y no el que tú propones.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: