Tugas
Diberikan daftar input bilangan bulat x 1 ... x n , hitung daftar peringkat r 1 ... r n (permutasi dari {1 ... n} ) sehingga x r 1 ≤ x r 2 ≤ ... ≤ x r n . Kemudian, untuk setiap x i , ganti pangkatnya dengan rata-rata aritmatika dari semua nilai dalam x yang sama dengan x i . (Yaitu, setiap kali ada ikatan antara nilai yang sama dalam x , cukup mendistribusikan ulang peringkat di antara mereka semua.) Keluarkan daftar peringkat yang dimodifikasi r ' 1 ... r'n .
(Untuk geeks statistik: peringkat pengamatan seperti itu digunakan dalam uji Mann-Whitney U (metode dua, langkah 1.))
Contoh
Diberikan daftar input [3, -6, 3, 3, 14, 3] , daftar peringkat pertama adalah [2, 1, 3, 4, 6, 5] , yang akan mengurutkan daftar menjadi [-6, 3, 3, 3, 3, 14] . Kemudian, peringkat untuk semua 3 detik dalam daftar input disamakan menjadi (2 + 3 + 4 + 5) ÷ 4 = 3.5 . Output akhir adalah [3.5, 1, 3.5, 3.5, 6, 3.5] .
Uji kasus
[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]
Aturan
Ini adalah kode-golf , jadi kode terpendek dalam byte menang.