Tarea
Dada una lista de entrada de enteros x 1 ... x n , calcule una lista de rangos r 1 ... r n (una permutación de {1 ... n} ) para que x r 1 ≤ x r 2 ≤ ... ≤ x r n . Luego, para cada x i , reemplace su rango por la media aritmética de los rangos de todos los valores en x que sean iguales a x i . (Es decir, siempre que haya un vínculo entre los valores iguales en x , redistribuya bastante bien los rangos entre todos ellos). Genere la lista modificada de rangos r ' 1 ... r'n .
(Para geeks estadísticos: tal clasificación de observaciones se usa en la prueba U de Mann – Whitney (método dos, paso 1.))
Ejemplo
Dada una lista de entrada [3, -6, 3, 3, 14, 3] , la primera lista de rangos sería [2, 1, 3, 4, 6, 5] , que ordenaría la lista en [-6, 3, 3, 3, 3, 14] . Luego, los rangos de los 3 s en la lista de entrada se igualan en (2 + 3 + 4 + 5) ÷ 4 = 3.5 . El resultado final es [3.5, 1, 3.5, 3.5, 6, 3.5] .
Casos de prueba
[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]
Reglas
Este es el código de golf , por lo que gana el código más corto en bytes.