Creando y gestionando encuestas

Buen punto @meave
Soy el autor de las encuestas de Votación por Orden de Preferencia, eso es un descuido.
No tengo derechos de edición en el OP. Estaré muy contento si alguien copia esto y lo formatea como considere oportuno, o si se convierte en una Wiki, estaré encantado de contribuir:
Actualmente funciona exactamente como se describe aquí, es la Votación por Eliminación Instantánea clásica:

(¡mi bifurcación del plugin de encuestas contiene ese ejemplo como una prueba unitaria!)
El proceso es el siguiente:
Cada votante envía una lista ordenada de candidatos. En cada ronda, solo consideramos al candidato en 1er lugar (y nos centramos en los posibles ganadores y los peores perdedores).

  1. Contar los votos de primer lugar para cada candidato
  2. Encontrar el(los) candidato(s) con más votos
  3. Comprobar si hay una mayoría clara y única y devolverla como ganadora (no más rondas, parar)
    Si no:
  4. Encontrar el(los) candidato(s) con menos votos
  5. Eliminar el(los) candidato(s) con menos votos de todos los votos
    Si los votos ahora están todos vacíos
  6. Informar del empate de aquellos candidatos que acaban de ser eliminados (no más rondas, parar)
    Si no:
  7. Subir todos los votos para que donde el 1er lugar fue ocupado por un perdedor (para un votante específico), el candidato en 2do lugar se convierta en su 1ª opción.
    Y las rondas continúan hasta que se encuentre una mayoría o un empate.
6 Me gusta