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

Langages de programmation Discussion :

Attribution par pourcentage et pondération


Sujet :

Langages de programmation

  1. #1
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut Attribution par pourcentage et pondération
    Bonjour à tous,

    J'ai un souci à propos d'un petit calcul de probabilités et mes dernières notions en maths remontent à quelques années, un petit coup de main ne serait pas de refus.

    En gros, on a des éléments créés automatiquement ou non. On a également défini arbitrairement que 30% de ses éléments doivent être attribués à une personne A, les 70% restants à une personne B.
    Ne sachant pas toujours combien d'éléments seront à traiter, que les éléments arrivent plus ou moins n'importe comment, on a décidé de faire une bidouille avec des pondérations.
    En gros, je donne une pondération de 3 à A et de 7 à B.
    Je tire un chiffre au hasard de 1 à 10 (les 2 inclus), si le chiffre est entre 1 et 3, c'est pour A, sinon c'est pour B. Et ainsi de suite pour chaque élément.
    Le problème, c'est qu'avec ce système, ce n'est plus 30% des éléments pour A mais 30% de chance par élément d'aller chez A.

    Ce qui, de mémoire, n'est pas la même chose d'un point de vue probabilité. Qu'en dites-vous? Si ma mémoire ne me fait pas défaut, comment puis-je corriger ce problème? Existe t'il un calcul mathématique à appliquer pour transformer mes pondérations et réattribuer correctement?

    Typiquement, hier, 4 éléments ont été créés, ils sont tous allés à B, alors qu'au moins 1 aurait dû être attribué à A.
    Comparez la qualité et le prix du matériel de bricolage ou de maison avant d'acheter : MatosMaison
    Le bouton ne masse pas les pieds, mais ça aide la communauté.

  2. #2
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 061
    Points
    32 061
    Par défaut
    En fait, il y a deux manières de suivre le problème :

    1)chaque élément a 30% d'aller en A. Très bien, mais ça ne garantit pas une distribution équitable. ça donne 2,8% de chances d'avoir 10 élements en B et aucun en A. tout peut arriver. C'est ce que tu as fait, et les résultats que tu as sont cohérents.

    2)on veut forcer un nombre d'éléments dans une structure; il faut alors ;
    a)calculer combien on veut d'élément par cible(Na = Ntotal * 0,3 ; Nb = Ntotal - Na, en faisant attention aux arrondis)
    b)trier aléatoirement les éléments
    c)mettre les Na premiers dans A, et tous les autres dans B.

    EDIT :
    dans ton exemple
    Typiquement, hier, 4 éléments ont été créés, ils sont tous allés à B, alors qu'au moins 1 aurait dû être attribué à A.
    il y a une probabilité de 0,7^4, soit 24,01% de chances, d'arriver au résultat "4 dans B et zéro dans A". D'ou mon point 2 : tu dois prédeterminér le nombre d'élements que tu veux, ici un et trois, et tourner autour pour mettre le nombre d'éléments voulus. Le tri aléatoire n'est qu'une possibilité parmi d'autres.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  3. #3
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Ok pour la première partie, merci de confirmer, ça me rassure.

    Pour la partie 2, ça signifie stocker les éléments à attribuer ce qui dans mon cas n'est malheureusement pas possible. On ne sait pas à l'avance la quantité d'éléments à traiter, ça me simplifierait la vie mais je ne peux pas avoir l'info. Ni si il y aura des éléments dans la pile.

    Je reste sur la première solution, tant pis, pas trop le choix pour le coup et on priera pour pas trop souvent tomber sur des cas extrêmes.
    Comparez la qualité et le prix du matériel de bricolage ou de maison avant d'acheter : MatosMaison
    Le bouton ne masse pas les pieds, mais ça aide la communauté.

  4. #4
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 061
    Points
    32 061
    Par défaut
    Ou alors tu prépares pour la journée un ordre préférentiel :

    1B(100%)
    2B(100%)
    3A(67%)
    4B(75%)
    5B(80%)
    6A(67%)
    7B(71%)
    8B(75%)
    9A(67%)
    10B(70%)

    et donc, ton premier evenement va automatiquement en B, le deuxième en B, le troisième en A, etc.....et si tu dépasses 10, tu recommences.

    Et quand tu collectes, (et donc que tu vides A et B, d'une manière ou d'une autre), tu remets à zéro. Voire, tu gardes en mémoire là ou tu en est pour équilibrer sur 2 jours. Si tu en a 4 le premier jour, et 6 le second, et que tu commences le premier jour en 1 et le deuxième en 5, ça te garantit 3A et 7B en tout - avec respectivement 75% et 67% de B suivant la journée, mais 70% garanti à long terme.

    Statistiquement, l'aléatoire va t'éloigner de plus en plus de l'idéal 70/30(avec un facteur racine si ma mémoire ne me fait pas défaut). Comme tu souhaites garder des proportions, il n'est pas un bon choix.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  5. #5
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Le problème, c'est que 70/30, c'est pour une règle parmi x (nombre inconnu) et que dans chaque règle, la répartition n'est pas toujours la même. Sachant que chaque règle doit être indépendante et ne font pas forcément d'attribution (c'est un cron capable d'effectuer de nombreuses actions, le paramétrage est très hétérogène). Des règles apparaissent ou disparaissent dans le temps (la conf est rechargée et exécutée toutes les 5 minutes) selon les besoins de chacun.

    Même si le hasard m'écarte de la répartition désirée à l'origine, je peux pas faire autrement, je le crains.
    Comparez la qualité et le prix du matériel de bricolage ou de maison avant d'acheter : MatosMaison
    Le bouton ne masse pas les pieds, mais ça aide la communauté.

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

Discussions similaires

  1. attributs par defaut de la balise <p>
    Par -Neo- dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 02/07/2007, 15h40
  2. [DOM] interpretation de la création d'un noeud et ses attributs par ie
    Par cybersplash dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/04/2007, 23h59
  3. Réponses: 11
    Dernier message: 12/04/2007, 12h28
  4. Réponses: 1
    Dernier message: 02/04/2007, 12h37
  5. [Débutant] Choix entre attribut par relation & aggrégation/composition ?
    Par GrandFather dans le forum Diagrammes de Classes
    Réponses: 14
    Dernier message: 04/12/2006, 10h12

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