DKL9 GitList
Repositories
DKL9 home
memoire
Code
Commits
Branches
Tags
Search
Tree:
020b897
Branches
Tags
master
memoire
src
leeches.lua
Improve leech-ranking formula
dkl9
commited
020b897
at 2023-198 10:09:26
leeches.lua
Blame
History
Raw
--[[ return number indicating how much of a leech the prompt is ]] local function badness(pr) local sff = math.log(pr.fail) / (pr.succ / (pr.fail + pr.succ)) ^ 2 local df = math.max(1, math.log(pr.delay) - 8) ^ 2 return sff / df end local function fn(config, deck) local leechqueue = {} for i, cg in ipairs(deck) do for j, pr in ipairs(cg.pr) do if badness(pr) > 0.1 and pr.delay >= 0 then table.insert(leechqueue, { i, j }) end end end table.sort(leechqueue, function(a, b) return badness(deck[a[1]].pr[a[2]]) > badness(deck[b[1]].pr[b[2]]) end) io.write(string.format("Detected %d leeches:\n", #leechqueue)) for _, ij in ipairs(leechqueue) do io.write(string.format("%d:%d %s\n", ij[1], ij[2], deck[ij[1]].pr[ij[2]])) end end return { desc = "(l)eech search", nd = true, fn = fn }