このコード課題は、あなたが到達するためのいくつかの方法を計算していますから始まる形式のマップ使用して(と非負整数)、及びステップの最小数でそうすることを。
(注、これはOEISシーケンスA307092に関連しています。)
例
したがって、たとえば、3つのマップが必要であり、2から13を送信する3つのマップの2つの異なるシーケンスがあるため、です。
その結果又は。
値の例
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])
チャレンジ
課題は整数を取るプログラム生成することである入力として、およびは異なるパスの数を出力に形のマップの最小数を介して。
これはcode-golfであるため、最小バイトが勝ちます。
x -> x + x^j
^
記号は累乗を示すことを明確に注意する必要があると思います。XORも可能です(たとえば、Cは^
ビットごとのXORに使用します)。