Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
90
Task/Ranking-methods/11l/ranking-methods.11l
Normal file
90
Task/Ranking-methods/11l/ranking-methods.11l
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
F mc_rank([(Int, String)] iterable)
|
||||
‘Modified competition ranking’
|
||||
[(Float, (Int, String))] r
|
||||
V lastresult = -1
|
||||
[(Int, String)] fifo
|
||||
L(item) iterable
|
||||
I item[0] == lastresult
|
||||
fifo [+]= item
|
||||
E
|
||||
V n = L.index
|
||||
L !fifo.empty
|
||||
r.append((n, fifo.pop(0)))
|
||||
lastresult = item[0]
|
||||
fifo [+]= item
|
||||
L !fifo.empty
|
||||
r.append((iterable.len, fifo.pop(0)))
|
||||
R r
|
||||
|
||||
F sc_rank([(Int, String)] iterable)
|
||||
‘Standard competition ranking’
|
||||
[(Float, (Int, String))] r
|
||||
V lastresult = -1
|
||||
V lastrank = -1
|
||||
L(item) iterable
|
||||
I item[0] == lastresult
|
||||
r.append((lastrank, item))
|
||||
E
|
||||
V n = L.index + 1
|
||||
r.append((n, item))
|
||||
lastresult = item[0]
|
||||
lastrank = n
|
||||
R r
|
||||
|
||||
F d_rank([(Int, String)] iterable)
|
||||
‘Dense ranking’
|
||||
[(Float, (Int, String))] r
|
||||
V lastresult = -1
|
||||
V lastrank = 0
|
||||
L(item) iterable
|
||||
I item[0] == lastresult
|
||||
r.append((lastrank, item))
|
||||
E
|
||||
lastresult = item[0]
|
||||
lastrank++
|
||||
r.append((lastrank, item))
|
||||
R r
|
||||
|
||||
F o_rank([(Int, String)] iterable)
|
||||
‘Ordinal ranking’
|
||||
R enumerate(iterable, 1).map((i, item) -> ((Float(i), item)))
|
||||
|
||||
F f_rank([(Int, String)] iterable)
|
||||
‘Fractional ranking’
|
||||
[(Float, (Int, String))] r
|
||||
V last = -1
|
||||
[(Int, (Int, String))] fifo
|
||||
L(item) iterable
|
||||
I item[0] != last
|
||||
I !fifo.empty
|
||||
V mean = Float(sum(fifo.map(f -> f[0]))) / fifo.len
|
||||
L !fifo.empty
|
||||
r.append((mean, fifo.pop(0)[1]))
|
||||
last = item[0]
|
||||
fifo.append((L.index + 1, item))
|
||||
I !fifo.empty
|
||||
V mean = sum(fifo.map(f -> f[0])) / fifo.len
|
||||
L !fifo.empty
|
||||
r.append((mean, fifo.pop(0)[1]))
|
||||
R r
|
||||
|
||||
V scores = [(44, ‘Solomon’),
|
||||
(42, ‘Jason’),
|
||||
(42, ‘Errol’),
|
||||
(41, ‘Garry’),
|
||||
(41, ‘Bernard’),
|
||||
(41, ‘Barry’),
|
||||
(39, ‘Stephen’)]
|
||||
|
||||
print("\nScores to be ranked (best first):")
|
||||
L(n, s) scores
|
||||
print(‘ #2 #.’.format(n, s))
|
||||
|
||||
L(ranker, ranking_method) [(sc_rank, ‘Standard competition ranking’),
|
||||
(mc_rank, ‘Modified competition ranking’),
|
||||
(d_rank, ‘Dense ranking’),
|
||||
(o_rank, ‘Ordinal ranking’),
|
||||
(f_rank, ‘Fractional ranking’)]
|
||||
print("\n#.:".format(ranking_method))
|
||||
L(rank, score) ranker(scores)
|
||||
print(‘ #3, (#., #.)’.format(rank, score[0], score[1]))
|
||||
Loading…
Add table
Add a link
Reference in a new issue