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 :

Algorithme de mariage


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 20
    Par défaut Algorithme de mariage
    Bonjour,

    j'aurais besoin d'un algorithme permettant de creer m paires uniques de personnes prises parmi n personnes.

    Pour être plus précis:

    - j'ai n personnes à "marier"
    - chaque personne doit être mariée avec p autres personnes (p est pair)
    - (donc si je calcule bien, je vais créer n*p / 2 = m paires)
    - il ne doit pas y avoir 2 paires identiques
    - une personne ne peut pas être mariée avec elle-même
    - chaque personne doit être p/2 fois en première position dans une paire, p/2 fois en 2e position

    Exemple: si j'ai 4 personnes A, B, C, D et que p vaut 2, je peux (je dois ?) faire:

    (A,B), (C,D), (D,A), (B,C)

    Bon, je vais réfléchir à la façon de généraliser ça, mais si vous avez une idée...

    PS: ce sera codé en php 4

    Jérôme

  2. #2
    Membre chevronné
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Par défaut
    Si on prend 0, 1, 2, ... n-1 au lieu de A, B, C...

    Est-ce que
    union_0≤i<n {(i,i+1 mod n),....(i,i+p/2 mod n)}
    conviendrait?

    Si tu as des préférences sur les paires, tu peux aussi regarder cela comment un problème de flot à coût minimum.

  3. #3
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut !

    Outre le fait que la polygamie est interdite par la plupart des législations occidentales, je ne vois pas bien l'intérêt de ton problème. Peux-tu préciser?

    Jean-Marc Blanc

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 20
    Par défaut
    Pour Francis: je n'ai rien compris à la formule (désolé, c'est peut-être mon niveau en maths). Est-ce qu'il y a un moyen de la réécrire de façon "moins compacte" ?

    Pour Jean-Marc: c'est pour un site de jeu d'échecs en ligne, sur lequel je veux organiser des tournois et où donc il faut "apparier" les joueurs avec les blancs et avec les noirs.

    Jérôme

  5. #5
    Membre chevronné
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Par défaut
    Citation Envoyé par FrancisSourd Voir le message
    union_0≤i<n {(i,i+1 mod n),....(i,i+p/2 mod n)}
    ex: pour n=7 p=4

    i=0 (0,1) (0,2)
    i=1 (1,2) (1,3)
    i=2 (2,3) (2,4)
    i=3 (3,4) (3,5)
    i=4 (4,5) (4,6)
    i=5 (5,6) (5,7 mod 7)=(5,0)
    i=6 (6,7 mod 7) =(6,0) (6,8 mod 7)=(6,1)

    J'espère que c'est plus clair! Ce n'est en tout cas pas la seule solution, c'est pour cela que je te parle de cherche une solution optimisée en évoquant des paires préférées.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 20
    Par défaut
    Bonjour,

    merci, c'est très clair et très simple, ça devrait me suffire.

    Jérôme

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

Discussions similaires

  1. Formalisation graphique des algorithmes
    Par David R. dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 08/12/2012, 10h21
  2. Algorithme de randomisation ... ( Hasard ...? )
    Par Anonymous dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/09/2002, 14h25
  3. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18
  4. Recherche de documentation complète en algorithmes
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/03/2002, 12h09
  5. Algorithme génétique
    Par Stephane.P_(dis Postef) dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 15/03/2002, 17h14

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