Esse desafio de código fará com que você calcule o número de maneiras de atingir começando em usando mapas do formato (com um número inteiro não negativo) e fazendo isso no número mínimo de etapas.
(Observe, isso está relacionado à sequência OEIS A307092 .)
Exemplo
Por exemplo, porque são necessários três mapas e há duas seqüências distintas de três mapas que enviarão de a :
Resultando em ou .
Valores de exemplo
f(2) = 1 (via [])
f(3) = 1 (via [0])
f(4) = 1 (via [1])
f(5) = 1 (via [1,0])
f(12) = 2 (via [0,2] or [2,1])
f(13) = 2 (via [0,2,0] or [2,1,0], shown above)
f(19) = 1 (via [4,0])
f(20) = 2 (via [1,2] or [3,1])
f(226) = 3 (via [2,0,2,1,0,1], [3,2,0,0,0,1], or [2,3,0,0,0,0])
f(372) = 4 (via [3,0,1,0,1,1,0,1,1], [1,1,0,2,0,0,0,1,1], [0,2,0,2,0,0,0,0,1], or [2,1,0,2,0,0,0,0,1])
Desafio
O desafio é produzir um programa que use um número inteiro como entrada e produza o número de caminhos distintos de a por meio de um número mínimo de mapas no formato .
Isso é código-golfe , e o menor número de bytes vence.
x -> x + x^j
^
símbolo denota exponenciação. Também poderia ser XOR (por exemplo, C usa^
para XOR bit a bit).