给定一个维向量与真正的条目,找到最接近的置换的相对于所述 -distance。
细节
- 如果是更方便,你可以使用置换代替。如果存在多个最接近的排列,则可以输出任何一个或全部替换。
- 两个向量u ,v之间的距离定义为d (u ,v )= ∑ i | u i − v i | 。
- 如果需要,可以假定输入仅由整数组成。
例子
[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
?