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

Langage PHP Discussion :

Recherche formule mathématique


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2022
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Octobre 2022
    Messages : 20
    Par défaut Recherche formule mathématique
    Bonjour,
    Je cherche une formule mathématique pour un projet.

    J'ai un un chiffre du style 14
    Et je cherche a savoir combien de 5, de 4 et de 2 je peux caser.
    La réponse que je cherche pour le chiffre 14 c'est deux 5 et un 4.


    l'objectif étant de toujours caser les plus gros chiffres.

    dit différemment,
    J'ai des sacs de 2 pommes
    des sacs de 4 pommes
    des sacs de 5 pommes


    l'objectif c'est que si la personne prend 14 pommes, faire en sorte de donner le moins de sac possible
    Il serait con de donner au client 7 sacs de pommes alors que 3 suffisent.

    j'ai la solution qui consiste a faire plein de calcul a la suite
    Exemple pour 14
    14-5=9
    9-5=4
    4-5=erreur
    4-4=0
    fin du calcul

    mais c'est beaucoup trop long
    car évidement l'idée ce n'est pas d'avoir l'information sur un chiffre, mais sur 200 voir plus avec des chiffres 2,4,5 qui changent en fonction des besoins.



    Merci d'avance pour celui qui aura une idée.

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 123
    Par défaut
    Salut florianjin, bienvenue sur DVP

    Je pense que tu aurais plus de chance d'avoir des propositions sur le forum Algorithme & Mathématiques Mathématiques, car ton problème n'est, dans un premier temps, pas lié à un langage mais à une formule mathématique.

    Par la suite, avec la bonne formule, tu pourras demander sur ce forum PHP comment la mettre en place pour ce langage.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797

  4. #4
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2022
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Octobre 2022
    Messages : 20
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Salut florianjin, bienvenue sur DVP

    Je pense que tu aurais plus de chance d'avoir des propositions sur le forum Algorithme & Mathématiques Mathématiques, car ton problème n'est, dans un premier temps, pas lié à un langage mais à une formule mathématique.

    Par la suite, avec la bonne formule, tu pourras demander sur ce forum PHP comment la mettre en place pour ce langage.
    effectivement merci pour l'information.
    Après avec PHP, il y a toujours une tonne de fonction, donc peut être qu'il existe une fonction de base qui est capable de faire le travail.

  5. #5
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2022
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Octobre 2022
    Messages : 20
    Par défaut
    Citation Envoyé par cavo789 Voir le message
    Merci,
    il va falloir que je regarde si c'est suffisamment léger comme calcul une fois adapté aux différentes possibilités,
    mais c'est clairement mieux que ce que j'avais trouvé.

  6. #6
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2022
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Octobre 2022
    Messages : 20
    Par défaut
    Précision
    La solution ne fonctionne pas avec valeur 22
    Et 7 4 2
    cela donne 3X7 au lieu de 2x7 et 2X4

  7. #7
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    >J'ai un un chiffre du style 14
    >Et je cherche a savoir combien de 5, de 4 et de 2 je peux caser.
    >La réponse que je cherche pour le chiffre 14 c'est deux 5 et un 4.

    Citation Envoyé par florianjin Voir le message
    Précision
    La solution ne fonctionne pas avec valeur 22
    Et 7 4 2
    cela donne 3X7 au lieu de 2x7 et 2X4
    Si je teste avec 22, j'ai bien :

    nombre de fois 5 : 4
    nombre de fois 4 : 0
    nombre de fois 2 : 1
    reste : 0


    Quel est le problème du coup ?... Je n'ai pas du comprendre ...

  8. #8
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2022
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Octobre 2022
    Messages : 20
    Par défaut
    Le problème c'est que si je change le 5 par un 7, cela ne fonctionne plus.

  9. #9
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 123
    Par défaut
    Salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    // Enter your code here, enjoy!
    $value=22;
     
    echo "nombre de fois 7 : ". $five=intval($value / 7). PHP_EOL;
     
    echo "nombre de fois 4 : ". $four=intval(($value % 7) / 4). PHP_EOL;
     
    echo "nombre de fois 2 : ". $two=intval(($value - ($five * 7)- ($four * 4)) / 2). PHP_EOL ;
     
    echo "reste : ". $value- ($five * 7) - ($four * 4 )- ($two * 2);
    Donne bien le bon résultat:
    Donne bien le bon résultat:
    nombre de fois 7 : 3
    nombre de fois 4 : 0
    nombre de fois 2 : 0
    reste : 1
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  10. #10
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Citation Envoyé par florianjin Voir le message
    Le problème c'est que si je change le 5 par un 7, cela ne fonctionne plus.
    C'est que tu as dû en oublier un... 😉

  11. #11
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 123
    Par défaut
    Salut

    en partant du code de cavo789
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    // Enter your code here, enjoy!
    $value=22;
    $diviseurs=array(7,4,2);
     
    $diviseurN=[count($diviseurs)-1];
    $result = 0;
    $Cmpt=0;
     
    foreach ($diviseurs as $div) {
      //echo "nombre de fois ". $div. " : ". $diviseurN[$Cmpt]=intval($value / $diviseurs[$Cmpt]). PHP_EOL;
      $result = $diviseurN[$Cmpt]=intval($value / $diviseurs[$Cmpt]);
      $value = $value-($result * $diviseurs[$Cmpt]);
      $Cmpt++;
    }
    for ($Cmpt = 0; $Cmpt <count($diviseurs); $Cmpt++) {
      echo "nombre de fois ".$diviseurs[$Cmpt]. ": ".$diviseurN[$Cmpt]."\n" ;
    } 
    echo "reste : ". $value;
    Il suffit de modifier la valeur de $value (ligne 3) et/ou $diviseurs (ligne 4) et ne pas toucher au reste du code.
    Les ligne 16 à 19 ne servent qu'a visualiser le résultat.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  12. #12
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2022
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Octobre 2022
    Messages : 20
    Par défaut
    Citation Envoyé par cavo789 Voir le message
    C'est que tu as dû en oublier un... 😉
    Sauf que ce n'est pas ce que je recherche, si le clients en a commandé 22, je ne vais pas lui en donner 21.
    est physiquement sur le produit il n'est pas possible de diviser en 2 le pack de 2.


    Ce que je souhaite c'est que le code me donne en résultat
    nombre de fois 7 : 2
    nombre de fois 4 : 2
    nombre de fois 2 : 0

  13. #13
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 299
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 299
    Billets dans le blog
    17

  14. #14
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Tu parlais de 5 et pas 7
    Tu parlais de sacs aussi.

    22, c'est 3 sacs de 7 et le restant (1) dans ton plus petit sac (celui de 2 pommes).

    C'est exactement conforme à ta demande (post 1).

    Deux sacs de 7 et deux sacs de 4,cela fait toujours 4 sacs. Il n'y a pas d'optimisation sur le nombre de sacs.

    Mais bon, perso je laisse tomber, ma proposition n'est jamais qu'une (et qui fonctionne) parmi d'autres. Je reste à l'écoute pour voir quel algorithme tu auras sélectionné et pour qu'elles raisons.

  15. #15
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2022
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Octobre 2022
    Messages : 20
    Par défaut
    Bah non
    3 sac de 7 pomme plus un sac de 2pommes, cela fait 23 pommes
    Et 3 sac de 7 pommes c'est 21 pommes


    2 sac de 7 pommes, et 2 sacs de 4 pommes donne 22pommes, la on est sur le bon nombre de pomme

    J'ai choisi des sacs est des pommes pour l'exemple, mais dans la réalité ce sont des produits sous vides avec un gaz spécifique.
    Impossible de changer le nombre de "pomme" par "sac"


    Donc si on prend 22 pommes la seul réponse acceptable c'est bien 2 sac de 7 pommes, et 2 sacs de 4 pommes, tout autre résultat ne peut être que faux.

  16. #16
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Avec des sacs de pommes, au magasin, j'ai le droit de n'avoir qu'une seule pomme dans mon sac qui peut en contenir deux.

    Je dis cela pour ceci : quand on énonce un problème et qu'on demande à des gens de prendre du temps pour proposer une solution, la bonne approche serait d'être clair, explicite et, surtout, complet. De dire "l'histoire des sacs, c'est pour l'exemple"; "on ne peut pas avoir des sacs qui ne sont pas complet"; l'histoire du 5,4,2 c'est pas fixé, cela pourrait être 7,4,2 voire 8,3,2 voire 6,2,1 voire 10,7,3,2 voire ... parce qu'au final, tu as tout changé à ton énoncé.

  17. #17
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2022
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Octobre 2022
    Messages : 20
    Par défaut
    Si je parle de sac contenant un nombre précis de pomme, cela implique forcément qu'il ne peut pas être changé.
    Sinon autant prendre le sac de 10 pommes qui pourrait tout autant y placer qu'une pomme.

    Quoi qu'il arrive la solution proposé ne fonctionne pas.

Discussions similaires

  1. Recherche dans les formules mathématiques
    Par Pierrot92320 dans le forum Word
    Réponses: 0
    Dernier message: 08/01/2021, 12h18
  2. Réponses: 1
    Dernier message: 20/06/2014, 01h48
  3. formule mathématique
    Par fakhri dans le forum Oracle
    Réponses: 1
    Dernier message: 12/11/2005, 16h44
  4. Déterminer Algo pour une formule mathématique
    Par jekyll_omiwane dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 07/01/2005, 19h28
  5. évaluateur de formule mathématique
    Par lyrau dans le forum Générateurs de compilateur
    Réponses: 5
    Dernier message: 28/03/2003, 23h50

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