2.2 KiB
title | id | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
Zeckendorf number representation | 594810f028c0303b75339ad6 | 5 | Representación de número de pueblo |
Description
Del mismo modo que los números se pueden representar en una notación posicional como sumas de múltiplos de las potencias de diez (decimal) o dos (binario); todos los enteros positivos se pueden representar como la suma de uno o cero veces los miembros distintos de la serie de Fibonacci.
Recuerde que los primeros seis números distintos de Fibonacci son: 1, 2, 3, 5, 8, 13
. El número decimal once se puede escribir como 0*13 + 1*8 + 0*5 + 1*3 + 0*2 + 0*1
o 010100
en notación posicional donde las columnas representan la multiplicación por un miembro particular de la secuencia. Los ceros iniciales se eliminan para que el decimal 11 se convierta en 10100
.
10100 no es la única forma de hacer 11 a partir de los números de Fibonacci; sin embargo, 0*13 + 1*8 + 0*5 + 0*3 + 1*2 + 1*1
o 010011 también representaría el decimal 11. Para un verdadero número de Zeckendorf existe la restricción añadida de que "no se pueden usar dos números de Fibonacci consecutivos", lo que lleva a la solución única anterior.
Tarea: escriba una función que genere y devuelva una matriz de los primeros N números de Zeckendorf en orden.
Instructions
Tests
tests:
- text: zeckendorf debe ser función
testString: 'assert.equal(typeof zeckendorf, "function", "zeckendorf must be function");'
- text: Tu función <code>zeckendorf</code> debería devolver la respuesta correcta
testString: 'assert.deepEqual(answer, solution20, "Your <code>zeckendorf</code> function should return the correct answer");'
Challenge Seed
function zeckendorf(n) {
// good luck!
}
After Test
console.info('after the test');
Solution
// solution required