URL: https://linuxfr.org/suivi/faire-des-questionnaires-%C3%A0-choix-multiples Title: Faire des questionnaires à choix multiples Authors: dave Date: 2011年03月25日T21:30:56+01:00 Tags: Score: 10 Bonjour, je m'interrogeais sur la possibilité de créer des sondages à choix multiples. Le problème arrive alors dans l'utilisation des statistiques. On pourrait définir par exemple une contribution unitaire aux statistiques pour une personne, et cette contribution serait divisée par le nombre de réponses cochées. Par exemple en langage plus mathématiques (j'utilise une syntaxe latex). Soit un sondage à _Q_ questions notées de _q\_{1}_ à _q\_{Q}_ . Soit _N_ personnes participant au sondage, notées de _p\_{1}_ à _p\_{N}_. Chaque question est associée à un pourcentage de réponses, que nous noterons _X\_{i}_ où _i_ correspond à la question _q\_{i}_. Soit une personne participant au sondage, elle va alors cocher un certain nombre de question qui sera l'ensemble _A\_{j}_, avec _card(A\_{j})=a\_{j}_, où _j_ est l'indice correspondant à la personne _p\_{j}_. En tout rigueur, si au moins une personne a participé au sondage, on a la somme pour _i_ qui va de 1 à _Q_ des _X\_{q\_{i}}_ qui est égale à 1. Soit la Nème personne qui vote, on ajoute _1/(N*a\_{N})_ à _X\_{i}_ pour chaque _p\_{i}_ dans _A\_{N}_. Un petit code python pour être un peu plus démonstratif: ```python """ Une version un peu rapide de l'implementation de ce probleme de sondage avec des variables globales. """ nombre_question=10 # un nombre arbitraire lie au sondage # l'ensemble des questions global list_question = [ "Q{0}".format(k) for k in range(nombre_question) ] # les pourcentages associes (de meme longueur que la liste des questions) global list_pourcentage = [ 0 for k in list_question ] # la liste des personnes ayant votees (vide a l'initialisation) global list_personne = [ ] def vote( list_reponse ): list_personne.append(list_reponse) for reponse in list_reponse : k = list_question.index(reponse) list_pourcentage[ k ] += 1. / ( len(list_personne) * len(list_reponse) ) # fin de la fonction vote. ``` Ce petit code en python (j'ai oui dire que ruby est assez similaire syntaxiquement a cependant le défaut que si une personne vote avec zéro réponse, on va avoir une division par zéro. Peut être faut il prendre ça en compte comme un vote nul, où ne pas le prendre en compte du tout. Merci beaucoup pour votre attention.