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

Mathématiques Discussion :

Algorithme limiter les échanges d'argent


Sujet :

Mathématiques

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Algorithme limiter les échanges d'argent
    Bonjour à tous,

    Je cherche un algo mais je ne sais pas dans quelle direction chercher.

    Voila, mon probleme est le suivant :

    Il y a N amis qui sont partis en voyage. Ils ont tour à tour payé pour les autres.
    Le voyage se termine et je cherche à calculer qui doit combien et surtout à qui ils doivent e l'argent.

    Savoir combien chacun à payé, ca c'est ok.
    Savoir combien chacun aurait du payé, c'est ok.
    Savoir combien chacun doit, c'est simplement : combien il aurait du payer - combien il a payé. (si c'est negatif, il doit recevoir de l'argent)
    Savoir combien chacun doit recevoir, c'est simplement : - combien il doit. (si négatif, il ne doit rien recevoir)

    Donc avec tous ces chiffres en main, je cherche comment limiter les échanges d'argent entre chaque participant pour solder les comptes. Histoire que chaque participant fasse le moins de cheque possible à ses copains.

    Ce problème semble assez classique et il existe peut-etre des algorithmes en théorie des graphes qui pourraient répondre à ca...
    Est-ce que vous voyez ce que je veux faire ? Avez-vous un idée d'algo existant qui pourrait me convenir ?

    Bonne fin de weekend

    Fluminis

    Exemple :
    Rémi : à payé 120€, aurait du payer 90€, doit recevoir 30€
    Stef : à payé 70€, aurait du payer 10€, doit recevoir 60€
    Mélanie : à payé 0€, aurait du payer 90€, doit 90€

    Au final, dans ce cas simple il n'y a qu'une solution (melanie donne a remi 30 et à stef 60), mais dès qu'il y a plus de participants, c'est plus dificile de savoir qui doit donner à qui.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    J'ai déjà résolu ce problème pour régler les comptes de succession entre frères et soeurs, je n'ai pas été chercher d'algorithme particulier, c'est pas vraiment difficile.
    Evidemment pour un nombre quelconque de membres c'est plus compliqué. Par exemple, vous pouvez écrire les équations linéaires. Il est probable qu'il en manque une, puisqu'à priori il y a plusieurs solutions, il suffit peut-être d'écrire que la somme des carrés des échanges est minimum.
    Bon courage.

  3. #3
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    D'accord avec Pierre Dolez.

    Si on note MR le flux d'argent entre Mélanie et Rémie, RS flux d'argent entre Rémi et Stef, ... on peut écrire que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    RM+RS=0   // flux sortant pour Remi
    MR+SR=30  // flux entrant pour Remi
     
    SM+SR=0   // flux sortant pour Stef
    MS+RS=60  // flux entrant pour Stef
     
    MR+MS=90  // flux sortant pour Melanie
    RM+SM=0   // flux entrant pour Melanie
    Reste à modéliser la contrainte de "transfert d'argent minimum".
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/09/2005, 10h53
  2. Composant pour limiter les décimales à deux
    Par Droïde Système7 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 20/08/2005, 12h00
  3. Limiter les déplacement de la souris a la fenetre
    Par Mathieu.J dans le forum OpenGL
    Réponses: 22
    Dernier message: 11/06/2004, 12h55
  4. Limiter les 30dernière liste de données?
    Par SkyDev dans le forum Langage SQL
    Réponses: 11
    Dernier message: 08/03/2004, 17h01
  5. Comment limiter les mouvements du curseur??
    Par scorpiwolf dans le forum C++Builder
    Réponses: 9
    Dernier message: 07/07/2002, 22h09

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