Problem in downvote system

95 Views Asked by At

Problem

For my game, I'm building a system where players have power/weight, and they can downvote each other, players with 66% of downvote weight are banned. The weight of the votes is calculated based on the total weight of the active players, and banned players cannot vote, so the total weight of the system can change during the computation.

Can I make this computation, avoiding infinite loops?

Constraints

  • The whole system is unveiled simultaneously, players and votes.
  • I have to compute this on the fly, so I cannot fix the total weight by using the final weight of a previous computation
  • I absolutely cannot count the banned players' votes, trolls are common
  • Also because trolls are common, a big percentage of the players can be banned at any point, so I can't either just count them in the final weight even if their actual votes don't count, because the minimum downvote percentage by legit players can grow beyond 100%.

Cases

I already spotted the trivial case of a player with 66%+ weight voting himself down, resembling "this sentence is false", so I disabled that.

But there's also the case where there's N players that together account for 66%+ weight, and where every combination of N-1 players still account for 66%+, and each of those agents downvote each other. So together they downvote each other but at the same time, because all of them are downvoted, all of their votes don't count. It's almost the same as the previous case but way harder to solve and even detect.

However, I think that case is unlikely because most of the players have to conspire for that to happen, or just by chance which is even more unlikely I believe.