14
バイナリバイナリ拡張
通常、係数を2のべき乗で割り当てることにより、数値を2進数に分解します。 01します。各項のまたはです。 25 = 1*16 + 1*8 + 0*4 + 0*2 + 1*1 選択0とは1非常にバイナリではない...です。2の累乗で拡張することにより真のバイナリ拡張を実行しますが、係数は1か、-1代わりに: 25 = 1*16 + 1*8 + 1*4 - 1*2 - 1*1 今、これはバイナリになります。 正の数が与えられた場合、次のことを確認することは簡単です。 すべての奇数には、無限に多くの真のバイナリ展開があります すべての偶数には真のバイナリ展開はありません したがって、真のバイナリ展開を明確に定義するには、展開を最小にする、つまり最短にする必要があります。 正の奇数の整数を指定するnと、最上位の桁から最下位の桁まで(または逆の順序で)、その真のバイナリ展開を返します。 ルール: これはcode-golfであるため、可能な限り短いバイト数でこれを行うことを目指す必要があります。ビルトインは許可されています。 係数を表してリストできる出力であればどれでも許容されます:配列、セパレータ付きの係数の文字列など... 標準のゴルフ抜け穴が適用されます。 プログラムは、言語の標準整数サイズ内の値で動作するはずです。 テストケース 25 -> [1,1,1,-1,-1] 47 -> [1,1,-1,1,1,1] 1 -> [1] 3 -> [1,1] 1234567 …