入力
正の整数の空でない配列。
仕事
各桁(ようにいずれかの2進数、8進数、10進数または16進数の各整数を変換0にFが)一度ほとんどで使用されています。
出力
パズルの解決に使用されたベースのリスト。
詳細な例
[16、17]の期待される出力は[8進数、10進数]です。
その理由は次のとおりです。
- 両方に1が含まれているため、両方の数値に単純に10進数を使用することはできません。
- 16は、このベース(10000)の表現に複数の0が含まれているため、バイナリに変換できません。
- 17は、このベース(10001)の表現がいくつかの0といくつかの1を含むため、バイナリに変換することもできません。
- 17は、この基数(11)の表現が2つの1で構成されているため、16進数に変換できません。
残りのすべての可能性を考えてみましょう。
+---------+---------+--------+ | oct(16) | dec(16) | hex(16)| | = 20 | = 16 | = 10 | +--------------+---------+---------+--------+ | oct(17) = 21 | 20,21 | 16,21 | 10,21 | | dec(17) = 17 | 20,17 | 16,17 | 10,17 | +--------------+---------+---------+--------+
唯一可能な解決策は、16を8進数(20)に変換し、17を10進数(17)に保つことです。このように、数字0、1、2及び7は、一度だけ使用されます。
明確化と規則
- 入力は、独自のソリューションにつながることが保証されています。あなたのコードは、いくつかのソリューションを提供する配列をサポートするものではなく、まったくソリューションを提供するものではありません。
- ["bin"、 "oct"、 "dec"、 "hex"]、['b'、 'o'、 'd'、 'h']、"BODHなど、任意の妥当な形式でベースを出力できます。「、[2,8,10,16]、[0,1,2,3]など。ただし、回答で明確に説明する必要があります。
- 出力の基数の順序は、入力整数の順序と一致する必要があります。
- それが役立つ場合は、入力が最低から最高、または最高から最低の順にソートされていると想定できます。
- これはcode-golfなので、バイト単位の最短回答が勝ちです!
テストケース
下記の変換結果を出力する必要はありません。それらは単なる情報です。
Input | Output | Conversion result
---------------------------------------+-----------------+------------------------
[ 119 ] | O | 167
[ 170 ] | D | 170
[ 64222 ] | H | FADE
[ 16, 17 ] | O/D | 20/17
[ 14, 64, 96 ] | H/H/D | E/40/96
[ 34, 37, 94 ] | O/D/H | 42/37/5E
[ 2, 68, 82 ] | B/D/H | 10/68/52
[ 22, 43, 96 ] | O/O/O | 26/53/140
[ 3639, 19086, 57162 ] | H/D/H | E37/19086/DF4A
[ 190, 229, 771 ] | O/H/O | 276/E5/1403
[ 2, 44, 69, 99 ] | B/H/H/H | 10/2C/45/63
[ 75, 207, 218, 357, 385 ] | H/H/H/D/O | 4B/CF/DA/357/601
[ 12, 28, 46, 78, 154, 188, 222, 240 ] | D/O/O/D/H/H/H/H | 12/34/56/78/9A/BC/DE/F0
生の入力リストはこちらから入手できます。