正の整数k > 1
と非負の整数i
を指定すると、非負の整数の- k
タプル(または- k
次元ベクトル)を生成します。すべてのためにk
、ℕのにℕからマップkは、全単射でなければなりません。つまり、すべての入力i
は異なるタプルを生成する必要があり、可能なタプルはすべてinputによって生成される必要がありますi
。
プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。
出力には、便利で明確なフラットリスト形式を使用できます。
あなたのソリューションは、上の人工的な制限を課すべきではないk
とi
はできますが、彼らはあなたの言語のネイティブ整数のサイズに収まることを仮定してもよいです。少なくとも、最大の値をサポートする必要があり255
ますが、ネイティブの整数サイズでさえそれより小さくなります。
いずれかのために1 < k < 32
、(あなたの答えはサポートされていない場合は、もちろん、あなたのコードは、ほんの数秒で結果を生成する必要があり、以前のルールによる大規模な、制限が相応に調整されていること)。これは何の問題もないはずです。それは、そのようなことは2まで働くことは、この課題を解決することが可能です128数秒ではなく、制限は実際の反復を避け回答にありへの結果を見つけること。i < 231
i
0
i
選択したマッピングの説明と、それが全単射である理由の正当性を回答に含めてください(これは正式な証明である必要はありません)。
これはコードゴルフで、最短の回答(バイト単位)が勝ちです。
q~2bW%1$Te]/zWf%2fbp
(逆入力順)