マップをキーと値のペアのセットとして定義します。この課題では、各値を取得し、それらをランダムに選択されたキーに割り当てる必要があります。
- 値をランダムにシャッフルして、結果のマップを出力する必要があります。つまり、プログラムを実行するたびに、異なる出力が得られる可能性があります。
- 考えられる値の順列ごとに、出現する可能性がゼロ以外である必要があります。
- 元のキーと元の値はすべて、結果の配列に含まれている必要があります。繰り返される値は、結果の配列に同じ回数出現する必要があります。
たとえば、マップが次の場合:
[0:10, 1:10, 5:5]
次のすべてが表示される可能性があります。
[0:10, 1:10, 5:5] (original map)
[0:10, 1:5, 5:10]
[0:10, 1:10, 5:5] (technically the same map, but I swapped the two tens)
[0:10, 1:5, 5:10]
[0:5, 1:10, 5:10]
[0:5, 1:10, 5:10]
許容できる入力/出力:
- 言語のネイティブマップ
- キーと値のペアの配列を入力できます。キーを含む配列と値を含む配列の2つの配列を入力することはできません。
- 上記の文字列表現を使用できます
- 配列またはマップを入力した場合、返す代わりに元のオブジェクトを変更できます
- 入力タイプは出力タイプと一致する必要があります
- 配列を入力する場合、キーの順序を維持する必要があります。
- キーは一意であると想定できますが、値が一意であるとは想定できません。
これはコードゴルフなので、できるだけ短く答えてください
[k, v]必要が[v, k]ありますか、それとも許容されますか?
[k, v]