Tarefa
Dada uma lista de entrada de números inteiros x 1 … x n , calcule uma lista de classificações r 1 … r n (uma permutação de {1… n} ) para que x r 1 ≤ x r 2 ≤… ≤ x r n . Então, para cada x i , substitua sua classificação pela média aritmética das classificações de todos os valores em x iguais a x i . (Ou seja, sempre que houver um empate entre valores iguais em x , redistribua razoavelmente as classificações entre todas elas.) Crie a lista modificada de classificações r ' 1 … r'n .
(Para geeks de estatística: esse ranking de observações é usado no teste U de Mann – Whitney (método dois, etapa 1.))
Exemplo
Dada uma lista de entrada [3, -6, 3, 3, 14, 3] , a primeira lista de classificações seria [2, 1, 3, 4, 6, 5] , que classificaria a lista em [-6, 3, 3, 3, 3, 14] . Então, as classificações para todos os 3 s na lista de entrada são niveladas em (2 + 3 + 4 + 5) ÷ 4 = 3,5 . A saída final é [3.5, 1, 3.5, 3.5, 6, 3.5] .
Casos de teste
[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]
Regras
Isso é código-golfe , então o código mais curto em bytes vence.