IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Combinaisons de répartition de votes


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut Combinaisons de répartition de votes
    Bonjour,

    L'intitulé me parait déjà compliqué

    Je cherche à construire un tableau contenant toutes les combinaisons possibles de ventilation des votes.

    Ainsi, et pour l'exemple: avec 4 votants et 4 candidats, le tableau résultant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    4 0 0 0
    3 1 0 0
    3 0 1 0
    3 0 0 1
    2 2 0 0
    ...
    0 0 0 4
    soit 35 lignes (si je ne me suis pas gourré dans mon tableau manuel)
    je pensais à du récursif, mais je n'arrive à trouver la condition de sortie satisfaisante, et après la 4ème ligne, ça part en sucette et j'ai toujours "3" en colonne 1.

    Avez-vous un algo à me proposer ?

    Précision: je dois faire ça en vba/excel

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Bonjour

    décidément, c'est la semaine du dénombrement sur le forum.

    Ton cas est simple. "c" est le nombre de candidats et "v" le nombre de votants. On choisit c-1 séparations entre les bulletins parmi v+1, indépendamment de l'ordre (les séparations sont indiscernables) et avec répétition (si on répète, un candidat a zéro vote). C'est donc une combinaison avec répétition.

    Formule mathématique

    Je ne suis pas surpris que tu trouves 35 empiriquement :

    Formule mathématique


  3. #3
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    Merci pour cette réponse.

    Tu évoques le "dénombrement" que j'ai googlisé et pour excel (ma contrainte), il existe la fonction COMBINA qui renvoie bien 35.

    Mais comment obtenir ces 35 tuples?

  4. #4
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Es-tu bien sûr de savoir ce que tu fais ? Pour l'élection présidentielle française 2022, il y a eu 32057325 votes exprimés pour 12 candidats. Soit 9.205423378019423e+74 possibilités de répartitions. Environ 1075. . Tu vas légèrement faire exploser la mémoire de ton ordinateur. Surtout avec un tableur qui n'est pas un outil très robuste.

    Quel est le vrai but final ?

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 489
    Par défaut
    salut


    si tu n'as que 4 elements max
    en faisant 4 boucle imbriqué tu peut faire apparaitre tes denombrement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      POUR  L De 4 a 0  Faire 
        POUR   K De 4 a 0  Faire 
          POUR   J De 4 a 0  Faire 
             POUR  I De 4 a 0  Faire 
                SI I+J+K+L = 4 Faire
                   ECRIRE(I,J,K,L)
                FIN SI
             FIN POUR
          FIN POUR
       FIN POUR
     FIN POUR
    pour la recursivité je pense qu'il va faloir passer par un tableau

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 216
    Par défaut
    Le même code que Anapurna, mais un peu optimisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Pour i de 4 à 0 pas -1 faire 
       Pour j de 4-i a 0 pas -1 faire 
          Pour j de 4-i-j a 0 pas -1 faire 
             l=4-i-j-k
             ecrire (i,j,k,l)
          Fin pour
       Fin pour
    Fin pour

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Toutes les combinaisons de répartition de n éléments dans n containers
    Par jlbrd dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 30/12/2017, 21h17
  2. [Algo] Trouver un arrangement ou une combinaison d'éléments
    Par Morvan Mikael dans le forum Algorithmes et structures de données
    Réponses: 16
    Dernier message: 20/04/2013, 11h46
  3. Combinaison et répartition
    Par Ry_Yo dans le forum Mathématiques
    Réponses: 3
    Dernier message: 06/09/2012, 20h24
  4. [combinatoire] combinaisons de toutes longueur
    Par Toorop dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 16/02/2007, 16h08
  5. Réponses: 2
    Dernier message: 22/07/2002, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo