Introdução (pode ser ignorado)
Colocar todos os números positivos em sua ordem regular (1, 2, 3, ...) é um pouco chato, não é? Então, aqui está uma série de desafios em torno de permutações (reorganizações) de todos os números positivos. Este é o quinto desafio desta série (links para o primeiro , segundo , terceiro e quarto desafio).
Neste desafio, conheceremos o conjunto Wythoff, que é uma avalanche entrelaçada de sequências de Fibonacci e de Beatty!
Os números de Fibonacci são provavelmente para a maioria de vocês uma sequência bem conhecida. Dados dois números iniciais e , os seguintes são dados por: para .
A sequência de Beatty , dado um parâmetro é: para . Uma das propriedades da sequência de Beatty é que, para cada parâmetro , existe exatamente um parâmetro , de modo que as seqüências de Beatty para esses parâmetros são disjuntas e unidas, elas abrangem todos os números naturais, excluindo 0 (por exemplo: ).
Agora, aqui vem a parte surpreendente: você pode criar uma matriz, em que cada linha é uma sequência de Fibonacci e cada coluna é uma sequência de Beatty. Essa matriz é a matriz Wythoff . A melhor parte é: todo número positivo aparece exatamente uma vez nessa matriz! A matriz fica assim:
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 ...
...
Um elemento em fileira e coluna é definido como:
onde é a proporção áurea: .
Se seguirmos as antiagonais dessa matriz, obteremos A035513 , que é a sequência de destino para esse desafio (observe que essa sequência é adicionada ao OEIS pelo próprio Neil Sloane !). Como esse é um desafio de "sequência pura", a tarefa é gerar para um dado como entrada, onde é A035513 .
Existem diferentes estratégias que você pode seguir para chegar a , o que torna esse desafio (na minha opinião) realmente interessante.
Tarefa
Dada uma entrada inteira , imprima no formato inteiro, onde é A035513 .
Nota: a indexação baseada em 1 é assumida aqui; você pode usar a indexação baseada em 0; portanto, , etc. Por favor mencione isso na sua resposta se você optar por usá-lo.
Casos de teste
Input | Output
---------------
1 | 1
5 | 7
20 | 20
50 | 136
78 | 30
123 | 3194
1234 | 8212236486
3000 | 814
9999 | 108240
29890 | 637
Pode ser divertido saber que o maior para é
Regras
- Entrada e saída são números inteiros
- Seu programa deve, no mínimo, suportar entrada no intervalo de 1 a 32767). Observe que atinge até 30 dígitos neste intervalo ...
- Entrada inválida (0, valores flutuantes, seqüências de caracteres, valores negativos etc.) pode levar a resultados imprevisíveis, erros ou comportamento (não) definido.
- Regras de E / S padrão se aplicam.
- As brechas padrão são proibidas.
- Isso é código-golfe , então as respostas mais curtas em bytes ganham
999
não9999