martes, 18 de septiembre de 2012

Formula para repartir los mismos puntos en una lista de longitud variable

Enunciado:

Realizas una encuesta con preguntas donde te responde con una lista de longitud variable por orden de preferencia.
Quieres repartir una cantidad fija de puntos entre las respuestas dando mas siempre a las situadas en primer lugar.

Por ejemplo "elija su ciudad favorita". En una respuesta te dicen solo una "CASTELLÓN", otra persona te dice "MADRID", "BARCELONA", "VALENCIA" y una tercera te dice "MADRID", "VALENCIA". "SEVILLA", "BURRIANA"
Hay 100 puntos a repartir, veamos los resultados:
  • La primera respuesta dará a CASTELLÓN 100 puntos
  • La segunda entregará  50 puntos a MADRID, 33 a BARCELONA y 17 a VALENCIA.
  • La tercera entrega a 40 a MADRID,  30 a VALENCIA, 20 a SEVILLA y 10 a BURRIANA
Al final tenemos: CASTELLON (100), MADRID (73), VALENCIA (47),BARCELONA (33) y BURRIANA (10).
Gana CASTELLON a MADRID, pese que CASTELLON solo haya sido votada una vez, y MADRID dos veces y en primer lugar en ambos casos.
Se valora mas cuando solo se da una respuesta que si se responde con varias. La persona que ha votado a CASTELLON está muy convencida, mientras que las demás tienen gustos dispersos.

Se me ocurre aplicarlo en las carreras de los autos locos, los participantes puntúan mas cuantos menos coches acaban. Seria peligroso aplicarlo en la F2 (Fernando Alonso dixit).

Solución

puntuación(r,p)=2*( (r-p+1)/(r*(r+1)))

Donde r es el número de respuestas y p la posición de la respuesta que estamos puntuando.

Comentario 

Esta formula puede implantarse en SQL  o en MDX. Es fácil construir una tabla Excel para ver las puntuaciones.


Cómo puede verse me apoyo en la suma de la serie geometríca.

No hay comentarios: