任务
给定整数的输入列表中X 1 ... X Ñ,计算行列的列表- [R 1个 ...ř Ñ(的置换{1 ... N} ),使得X - [R 1 ≤X - [R 2 ≤...≤X - [R Ñ。然后,对于每个x i,用x中等于x i的所有值的秩的算术平均值替换其秩。(即,每当有相等的值之间的粘结X,相当重新分配在所有它们的行列。)输出等级的改性列表R“ 1 ... R”n。
(对于统计极客:在Mann-Whitney U检验中使用了这样的观察结果排名(方法2,步骤1。))
例
给定输入列表[3,-6,3,3,14,3],排名的第一个列表将是[2,1,3,4,6,5],将列表分类为[-6, 3,3,3,3,14]。然后,输入列表中所有3 s 的等级被平均为(2 + 3 + 4 + 5)÷4 = 3.5。最终输出为[3.5,1,3.5,3.5,6,3.5]。
测试用例
[4, 1, 4] -> [2.5, 1.0, 2.5]
[5, 14, 14, 14, 14, 5, 14] -> [1.5, 5.0, 5.0, 5.0, 5.0, 1.5, 5.0]
[9, 9, -5, -5, 13, -5, 13, 9, 9, 13] -> [5.5, 5.5, 2.0, 2.0, 9.0, 2.0, 9.0, 5.5, 5.5, 9.0]
[13, 16, 2, -5, -5, -5, 13, 16, -5, -5] -> [7.5, 9.5, 6.0, 3.0, 3.0, 3.0, 7.5, 9.5, 3.0, 3.0]
规则
这是code-golf,因此以字节为单位的最短代码获胜。