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

PHP & Base de données Discussion :

pourcentage plus proche de la note de nicolas


Sujet :

PHP & Base de données

  1. #21
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    non mais 9 peut pas etre a 100% de 18 ou inversement !
    Les pourcentages ne s'inversent pas !

    Pour aller de 9 à 18, il manque 9, c'est à dire 100% du point de départ.
    Pour aller de 18 à 9, il manque 9, c'est à dire 50% du point de départ.

    Si la note de référence est 9, avec les notes de 14 ou de 4, l'écart est le même (5), donc le pourcentage de cet écart par rapport à 9 est le même.

    Mais, pour reprendre ton analogie avec la distance parcourue :
    - si j'ai parcouru 4 km alors que je dois aller à 9, je dois encore en parcourir 5/4 = 125% de la distance que j'ai déjà parcourue ;
    - si j'ai parcouru 14 km alors que l'arrivée était à 9, je dois revenir de 5/14 = 35,71% de la distance que j'ai déjà parcourue.
    Pourtant, d'un côté, il manque 5 kilomètre, de l'autre, j'en ai fait 5 de trop et je suis dans les deux cas à la même distance de l'arrivée.

    Ma formule donne en pourcentage l'écart par rapport à une note de référence.
    Référence : 9
    Note : 18
    Écart : 9, soit 100% de la référence.
    Note : 0
    Écart : 9, soit 100% de la référence.

    Ou alors je n'ai pas compris ce que tu cherches à obtenir comme résultat.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #22
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    sauf erreur, le bon calcul est :
    100 * (1 - ABS(c.note - tmp.note) / tmp.note) AS pourcentage
    Exemple : tmp.note=15 (note de référence du Petit Nicolas)

    Note de l'élève => % de la note de référence :
    4 => 27%
    6 => 40%
    10 => 67%
    15 => 100%
    18 => 80%
    20 => 67%

    En clair : plus la note de l'élève est proche de la note de référence, plus le pourcentage est élevé.
    CQFD.

  3. #23
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 45
    Points : 13
    Points
    13
    Par défaut
    OK mon exemple des distances était ptetre pas le meilleur..
    Cette fois jai lexemple ultime lol
    Admetons un test de personnalité comme on trouve dans tous les magazine de fille !
    La fille passe son test, elle obtient une note finale qui determinera son caractere.
    Cette meme fille qui vient de passer son test click sur rechercher les filles qui ont un caractere proche du mien ! (on considere ici que plus la note du resultat du test est proche plus le caractere est proche)
    Et la s'affiche dans le résultat toute les filles avec un pourcentage du plus fort au plus petit . Ce pourcentage serait proportionnel à l'écart de la note obtenue lors du test. Moins lécart est grand , plus le pourcentage est fort !
    Es ce qu'on parle bien de la meme chose ?!

  4. #24
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 45
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,
    sauf erreur, le bon calcul est :


    Exemple : tmp.note=15 (note de référence du Petit Nicolas)

    Note de l'élève => % de la note de référence :
    4 => 27%
    6 => 40%
    10 => 67%
    15 => 100%
    18 => 80%
    20 => 67%

    En clair : plus la note de l'élève est proche de la note de référence, plus le pourcentage est élevé.
    CQFD.
    Bonjour jreaux,
    cest pas si simple regarde cet exemple :

    Paul à la note 9 et il lance sa recherche , jean à 18 et charles à 19 .
    100 * (1 - (ABS(18 - 9) / 9))
    100 * (1 - (ABS(9) / 9))
    100 * (1 - (ABS(1))
    100 * (1 - 1)
    jean à 0% pour un écart de 9

    100 * (1 - (ABS(19 - 9) / 9))
    100 * (1 - (ABS(10 / 9))
    100 * (1 - (ABS(1,11)
    100 * (-0,11)
    Charles à -11% pour un ecart de 10 .
    quand lucie (qui a 19) fais sa recherche et tombe sur charles(qui a 9) , voila son résultat :

    100 * (1 - (ABS(9 - 19) / 19))
    100 * (1 - (ABS(10 /19))
    100 * (1 - (ABS(0,52)
    100 * (0,48)
    Lucie à 48% pour un ecart de 10 .

  5. #25
    Invité
    Invité(e)
    Par défaut
    Puisqu'on en est à trouvé des métaphores :
    Supposons un orateur :
    plus on est proche de lui, mieux on l'entend !

    - Une personne au 1er rang l'entend "5/5" (100%)
    - Une personne plus éloignée l'entendra "4/5" (80%), "3/5" (60%)... qu'il soit placé à droite, à gauche, devant ou derrière l'orateur !
    Dernière modification par Invité ; 30/12/2012 à 15h19.

  6. #26
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 45
    Points : 13
    Points
    13
    Par défaut
    Note de l'élève => % de la note de référence :
    4 => 27%
    6 => 40%
    10 => 67%
    15 => 100%
    18 => 80%
    20 => 67%

    En clair : plus la note de l'élève est proche de la note de référence, plus le pourcentage est élevé.
    CQFD.
    Cest exactement la bonne logique mais ca a lair plus dur qu'il n'y parait à mettre en place !

  7. #27
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Jreaux62, c'est peut-être le résultat que jesspoub souhaite obtenir mais il ne veut rien dire.
    Citation Envoyé par jreaux62
    Note de l'élève => % de la note de référence (15) :
    18 => 80%
    20 => 67%
    Faux !
    18, c'est 120% de la note de référence.
    20, c'est 133% de la note de référence.

    jesspoub, le test de filles est le même que la note de classe. Et la logique est la même. Il ne faut pas que tu cherches le plus grand pourcentage parce qu'il ne veut rien dire quand le résultat obtenu au test est supérieur au résultat de référence. Il faut que tu tries par le plus petit écart, que celui-ci soit exprimé en note pure ou en pourcentage.

    Ou alors c'est de la logique féminine et là je m'incline, je n'ai pas le temps de lire le bouquin !
    Images attachées Images attachées  
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #28
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jesspoub Voir le message
    Cest exactement la bonne logique mais ca a lair plus dur qu'il n'y parait à mettre en place !
    En effet... Je me suis aussi laissé prendre avec vos histoires d'"écart"...

    Au fait, pourquoi s'embêter avec des pourcentages, alors que seul ABS(c.note - tmp.note) suffit à définir l'écart ??
    Dernière modification par Invité ; 30/12/2012 à 15h50.

  9. #29
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 45
    Points : 13
    Points
    13
    Par défaut
    Messieurs je le sais bien depuis le début qu'un pourcentage de quelque chose qui ne peut pas valoir 100 n'à pas de sens, mais je cherchais à
    assigner des pourcentage fictifs indicateurs ! Cela dit :

    prenom ecart

    Lucie 5
    george 7
    nico 8
    emilie 34
    gui 72
    pierre 138
    marcel 187
    hug 230

    quelque soit la note X de référence ce bon vieux PAUL ! Pour FEP (faux ecart en pourcentage) ,
    FEP=100-5=95%
    FEP=100-7=93%
    FEP=100-8=92%
    FEP=100-34=66%
    FEP=100-72=28%
    FEP=100-138=-138=1,38% ok jarette

    Mais sérieusement, ya moyen de limiter cette requete a un ecart max de 99 ?
    Apres tout si la note ne peut pas exeder 100 le systeme des pourcentage fonctionne ! Amoins que je ne lise trop "elle"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *, ABS((SELECT note FROM classe WHERE prenom = 'paul') - note) AS ecart
    FROM classe
    WHERE prenom != 'paul'
    ORDER BY ecart

  10. #30
    Invité
    Invité(e)
    Par défaut
    Dans ce cas, le plus simple est encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    100 - ABS(c.note - tmp.note)
    Au fait, on suppose que c'est une NOTE SUR 20, non ?
    20 est alors l'écart MAXIMUM entre 2 notes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    100 * (1 - ABS(c.note - tmp.note)/20)
    Sauf erreur, c'est un changement de référentiel (ou de base) : base20 -> base100
    Dernière modification par Invité ; 30/12/2012 à 16h29.

  11. #31
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 45
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Dans ce cas, le plus simple est encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    100 - ABS(c.note - tmp.note)
    Au fait, on suppose que c'est une NOTE SUR 20, non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    100 * (1 - ABS(c.note - tmp.note)/20)
    Merci jvais tester tout ca et pour LIMIT ecart max 99 ?

  12. #32
    Invité
    Invité(e)
    Par défaut
    100 * (1 - ABS(c.note - tmp.note)/20) est toujours inférieur à 100 (pour des note/20, bien sûr).

  13. #33
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 45
    Points : 13
    Points
    13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT prenom, note,  100 *  (1 - ABS(SELECT note FROM classe WHERE prenom = 'paul') - note) /20) AS ecart
    FROM classe
    WHERE prenom != 'paul'
    ORDER BY ecart DESC
    me renvoit une erreur de sintax(encore) !

  14. #34
    Invité
    Invité(e)
    Par défaut
    Cinephil t'a pourtant fourni la bonne syntaxe !
    Pourquoi chercher à "improviser" ??

  15. #35
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 45
    Points : 13
    Points
    13
    Par défaut
    pour apprendre ! merci pour tous les conseils, étant donné
    que je débute en informatique je reviendrai surement vous embéter !
    cela dit cétait marran et intéréssant ! merci, bonne soirée

    Jess

Discussions similaires

  1. Arrondi au multiple le plus proche ...
    Par Marco85 dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 21/07/2009, 13h56
  2. [Ingres] Est-il plus proche de Transac ou d'Oracle ?
    Par tomsoyer dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 23/03/2006, 13h31
  3. [C#][VS2003] Arrondir un float à l'inférieur le plus proche
    Par gregos dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/11/2005, 12h14
  4. Recherche de point le plus proche [façon optimal]
    Par norwy dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/10/2005, 17h15
  5. Récupurer via une requête SQL la valeur la plus proche
    Par yoda_style dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/04/2004, 13h52

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