Introducción (puede ser ignorado)
Poner todos los números positivos en su orden regular (1, 2, 3, ...) es un poco aburrido, ¿no? Así que aquí hay una serie de desafíos en torno a las permutaciones (reorganizaciones) de todos los números positivos. Este es el quinto desafío de esta serie (enlaces al primer , segundo , tercer y cuarto desafío).
En este desafío, nos encontraremos con la matriz de Wythoff, que es una avalancha entrelazada de secuencias de Fibonacci y secuencias de Beatty.
Los números de Fibonacci son probablemente para la mayoría de ustedes una secuencia bien conocida. Dados dos números iniciales y , los siguientes están dados por: para .
La secuencia Beatty , dado un parámetro es: para . Una de las propiedades de la secuencia de Beatty es que para cada parámetro , hay exactamente un parámetro , de modo que las secuencias de Beatty para esos parámetros están disjuntas y unidas, abarcan todos los números naturales, excluyendo 0 (p. Ej .: ).
Ahora viene la parte alucinante: puede crear una matriz, donde cada fila es una secuencia de Fibonacci y cada columna es una secuencia de Beatty. Esta matriz es la matriz de Wythoff . La mejor parte es: ¡cada número positivo aparece exactamente una vez en esta matriz! La matriz se ve así:
1 2 3 5 8 13 21 34 55 89 144 ...
4 7 11 18 29 47 76 123 199 322 521 ...
6 10 16 26 42 68 110 178 288 466 754 ...
9 15 24 39 63 102 165 267 432 699 1131 ...
12 20 32 52 84 136 220 356 576 932 1508 ...
14 23 37 60 97 157 254 411 665 1076 1741 ...
17 28 45 73 118 191 309 500 809 1309 2118 ...
19 31 50 81 131 212 343 555 898 1453 2351 ...
22 36 58 94 152 246 398 644 1042 1686 2728 ...
25 41 66 107 173 280 453 733 1186 1919 3105 ...
27 44 71 115 186 301 487 788 1275 2063 3338 ...
...
Un elemento en la fila columna se define como:
donde es la proporción áurea: .
Si seguimos los anti-diagonales de esta matriz, obtenemos A035513 , que es la secuencia objetivo para este desafío (¡tenga en cuenta que esta secuencia se agrega al OEIS por el propio Neil Sloane !). Como se trata de un desafío de "secuencia pura", la tarea es generar para un dado como entrada, donde es A035513 .
Hay diferentes estrategias que puede seguir para llegar a , lo que hace que este desafío (en mi opinión) sea realmente interesante.
Tarea
Dada una entrada entera , salida en formato entero, donde es A035513 .
Nota: aquí se supone una indexación basada en 1; puede usar indexación basada en 0, entonces , etc. Mencione esto en su respuesta si elige usar esto.
Casos de prueba
Input | Output
---------------
1 | 1
5 | 7
20 | 20
50 | 136
78 | 30
123 | 3194
1234 | 8212236486
3000 | 814
9999 | 108240
29890 | 637
Puede ser divertido saber que el más grande para es
Reglas
- Entrada y salida son enteros
- Su programa debe al menos admitir entradas en el rango de 1 hasta 32767). Tenga en cuenta que sube a números de 30 dígitos en este rango ...
- La entrada no válida (0, flotantes, cadenas, valores negativos, etc.) puede generar salidas imprevistas, errores o un comportamiento (no) definido.
- Se aplican las reglas de E / S predeterminadas .
- Las lagunas predeterminadas están prohibidas.
- Este es el código de golf , por lo que las respuestas más cortas en bytes ganan
999no9999