Why multiply by two? It just means odd values will never be used.
I have a counterproposal for the formula: $t = int(rand(100)).
- On average, it seems about right.
- Low computational overhead
- Nodes with few votes aren't given artificially inflated values
- Provably produces the precisely correct answer, at least once in a while. This cannot be said of the original formula.
- Even if this somehow induces lemming voting, half the lemmings should fall off each side of the cliff
- Runs no risk of influencing monks' interpretation of votes. After all, monks' current behavior has made the site what it is today; what if this is the butterfly that carries the slashdot mentality between its flapping wings?
There is the problem that the value flips around a lot, and people might not take it seriously. So how about:
- $t[0] = rand(100)
- $t[$i+1] = 0.9 * $t[$i] + 0.1 * rand(100)
- The index $i is age in days, age in hours, number of votes, times viewed, or something similar.
- The computation is hidden. Instead, it is described as "the tension takes as input the node upvotes, downvotes, number of responses, and the votes on the responses." Which is true, it just doesn't look at any of them.