実数のエントリを持つ次元のベクトルが与えられた、距離に関して最も近い順列を見つけます。
詳細
- より便利な場合は、代わりに順列を使用できます。最も近い順列が複数ある場合は、いずれか1つまたはすべてを出力できます。
- 2つのベクトル間の距離は、として定義され
- 必要に応じて、入力が整数のみで構成されていると想定できます。
例
[0.5 1] -> [1 2], [2 1]
c*[1 1 ... 1] -> any permutation
[1 4 2 6 2] -> [1 4 3 5 2], [1 4 2 5 3]
[1 3 5 4 1] -> [2 3 5 4 1], [1 3 5 4 2]
[7 7 3 2 5 6 4 2] -> [8 7 3 2 5 6 4 1], [8 7 3 1 5 6 4 2], [7 8 3 2 5 6 4 1], [7 8 3 1 5 6 4 2]
[-2 4 5 7 -1 9 3] -> [1 4 5 6 2 7 3], [2 4 5 6 1 7 3], [1 4 5 7 2 6 3], [2 4 5 7 1 6 3]
[0 4 2 10 -1 10 5] -> [1 4 2 6 3 7 5], [1 4 3 6 2 7 5], [2 4 3 6 1 7 5], [3 4 2 6 1 7 5], [1 4 2 7 3 6 5], [1 4 3 7 2 6 5], [2 4 3 7 1 6 5], [3 4 2 7 1 6 5]
より多くの例を生成するためのオクターブスクリプト。
v
任意の整数にすることができます。(いくつかの例を追加しました。)
[1.6 2]
は重要なテストケースです(貪欲なアルゴリズム/辞書式ソートは間違った答えを与えます)。
v
がより大きいことを保証されてい0
ますか?または、少なくとも、そうではありません0
か?